如何解决对只有常量成员的对象使用 const 有意义吗?
如果一个类只有 const 成员:
struct A {
const int n;
const std::string s;
void f() const;
};
以下几组定义是否等效?
A a1 {...};
const A a2 {...};
A& ref1 = a1;
const A& ref2 = a1;
const A& ref3 = a2;
在这种情况下,const
是多余的吗?
解决方法
const 成员变量一开始很少有意义。
以下几组定义是否等效?
A a1 {...};
const A a2 {...};
A& ref1 = a1;
技术上不,它们不等价,因为你不能这样做:
A& ref1 = a2;
,
要回答标题中的问题:
对只有常量成员的对象使用 const 有意义吗?
恕我直言,您应该决定是否独立于其成员是否为 const
来创建变量 const
。这样做的原因是文档、语义和一致性,以及可维护性。
因此,如果您的意图是这部分代码不会对变量进行更改,则添加 const
独立于您当前无法对成员变量进行任何更改的事实。>
您永远不知道将来是否可以在没有 const
成员的情况下扩展该类,或者您需要删除其中一个成员的 const
限定符,然后删除 constness 之前由所有成员提供的 const
将不再完全适用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。