讨论/《C++ 面试突击》 - const 作用及用法/
《C++ 面试突击》 - const 作用及用法
共 6 个回复

"不能在类的声明中初始化 const 成员变量"
这句怎么理解?

struct A
{
    const int a = 5;
    A(int a) : a(a) {}
};
int main()
{
    A a(4);
    cout << a.a << endl;
    return 0;
}
2

因为实际工程中,这个const常量在不同对象里可能是不一样的,要在构造函数里赋值,比如一个人的考试成绩,你直接在声明里给赋值了,后面就改不了了

1

求示例代码,什么是类的声明里还能初始化成员变量?且不说是不是const类型。

你这是类的实现,可以初始化,在类的声明中不能.

所以这句话怎么理解?的确是可以在类中初始化const成员变量的。

是的,换成class也是一样,在类的声明中初始化const成员变量没报错。

class A
{
public:
    const int a = 5;
    A(int b) : a(b) {}

};
int main()
{
    A a(4);
    cout << a.a << endl;

    return 0;
}
// 4