我正在尝试确定当一个对象有一些不会改变的特征时,最好的选择是什么,并且在整个函数中都需要它.
在我看来,静态成员的真正原因是拥有一个可以更改的变量,从而影响同一个类的所有其他对象.但是,我有人建议将类"不变量"作为静态const成员.我正在寻找有关建立类常量的推荐方法的一些见解,以及原因.
AnT*_*AnT 16
"不会改变"不够精确.这里的主要问题是类的不同对象是否需要具有这些const成员的不同值(即使它们在对象的生命周期内不会改变),或者所有对象都应该使用(共享)相同的值.
如果该类的所有对象的值相同,那么它当然应该是static const该类的成员.
如果不同的对象可能需要不同的值,那么它应该只是一个非静态const成员.
Dus*_*tin 15
一个const成员时,应使用该成员未在每个实例进行改变.甲static const构件时,应使用该成员不基于每个类基础改变.换句话说,无论您创建多少个实例,该static const成员在所有实例之间保持固定,而该const成员仅对特定实例保持不变.
我不确定这是不是你要找的东西,因为这只是对它们行为方式的解释,但我希望它有所帮助.