【发布时间】:2018-12-23 15:22:39
【问题描述】:
假设我有一个常量成员,不同的对象对这个常量有不同的值,这个常量成员和没有setter的私有成员有什么区别?
【问题讨论】:
-
一个没有setter的私有成员仍然可以被类内部改变,而一个const成员不能。
-
"...通过内部类"或通过
friend函数。 -
很少,主要是风格问题。但是,您可以使用公共常量来做一些您不能使用私有变量和 getter 的事情。例如,您可以获取常量的地址,或者在其上使用 sizeof。编写类(部分)是关于定义您希望使用的类的接口。这就是为什么首选吸气剂的原因。具有良好定义接口的类也更容易在以后修改。
-
如果你上面试过了,能不能提供一个代码sn-p?你得到什么行为?我的意思是你如何为不同的实例分配不同的值给这个常量?
-
@john,实际上差别很大,正如 pablo285 在他的回答中指出的那样。只有当你的类在初始化后从不改变它的私有成员的值时,才会有一个“小”的区别,但这是一个非常极端的情况。
标签: c++ class-constants