类中的数据成员可以是const,但仅限于其静态。 否则我们需要一个构造函数来初始化类中的常量。
can we declare a const data member inside a class? //this was an interview question
在我看来,我们可以,但是程序员在类中声明一个常量是否合适。
请给出一些解释/理由,为什么我们能做或不能做?
答案 0 :(得分:1)
当然你可以:
struct A
{
A() : a(5)
{
}
const int a;
};
int main()
{
A a;
}
这意味着结构A内的数据成员a不会改变。
答案 1 :(得分:1)
简短回答:您可以在班级中拥有非静态const
成员。
由于您仍然需要为其分配值,因此您可以选择的唯一位置是初始化列表。
而且,如果你的成员真的不变,这总是一个很好的理由。我的意思是,const-correctness主要是一个帮助更好编码的可选工具,所以如果你愿意,可以使用它,你以后会感谢你。如果你不使用它......那它并不重要!
答案 2 :(得分:1)
确定您是否有想要在班级中使用的常量,并且属于某个类。
例如,假设您有一些具有唯一ID的数据类型,ID标识的对象永远不会更改:
class myData {
cont int ID;
myData(int newID) : ID(newID) {}
}