如果一个类他有一个const 成员变量,那么只能在参数初始化列表中为它赋值。
原因:因为常量只能初始化,不能赋值,所以不能在构造函数中为它赋值,(相当于到达构造函数体内时,成员变量已经初始化完了,就相当于不能给const变量改值一样)
class A {
public:
A(int b) :a(b) {}
const int a;
};
class B {
public:
B(int b){
c = b;//错误,不能给常量赋值;
}
const int c;
};
如果一个类他有一个const 成员变量,那么只能在参数初始化列表中为它赋值。
原因:因为常量只能初始化,不能赋值,所以不能在构造函数中为它赋值,(相当于到达构造函数体内时,成员变量已经初始化完了,就相当于不能给const变量改值一样)
class A {
public:
A(int b) :a(b) {}
const int a;
};
class B {
public:
B(int b){
c = b;//错误,不能给常量赋值;
}
const int c;
};