类中的数据成员可以是 const,但前提是它是静态的。否则我们需要有一个构造函数来初始化类中的常量。
can we declare a const data member inside a class? //this was an interview question
在我看来我们可以,但是程序员在类中声明一个常量是否合适。
请给出一些解释/原因,为什么我们可以或不能这样做?
类中的数据成员可以是 const,但前提是它是静态的。否则我们需要有一个构造函数来初始化类中的常量。
can we declare a const data member inside a class? //this was an interview question
在我看来我们可以,但是程序员在类中声明一个常量是否合适。
请给出一些解释/原因,为什么我们可以或不能这样做?
当然,您可以:
struct A
{
A() : a(5)
{
}
const int a;
};
int main()
{
A a;
}
这意味着结构 A 中的数据成员 a 不会改变。
确定你是否有一些你想在你的类中使用的常量,并且属于一个类。
例如,假设您有一些具有唯一 ID 的数据类型,该 ID 标识对象,因此永远不会改变:
class myData {
cont int ID;
myData(int newID) : ID(newID) {}
}
Short answer : You can have a non-static const
member inside a class.
As you still need to assign it a value, the only place where you're allowed to is in the initialization list.
And, well, it's always a good reason to do it if your member is really constant. I mean, const-correctness is mainly an optional tool to help better coding, so use it if you want, you'll thank yourself later. And if you don't use it... well it doesn't really matter!