Const member variable ต้อง initialize ผ่าน member initializer list ใน constructor ไม่สามารถ assign ใน body ได้
Syntax
class MyClass {
const int x; // ต้อง initialize ใน initializer list
public:
MyClass(int a) : x(a) {} // OK: initializer list
void show() { cout << x; }
};
int main() {
MyClass obj(40);
obj.show(); // 40
}
ข้อสังเกต
- Initializer list: หลัง constructor parameters วาง
: member(value) - Const members, reference members, และ base class constructors ต้อง init ที่นี่
- ลำดับ initialization ตามลำดับการประกาศในคลาส (ไม่ใช่ลำดับใน list)
- C++11: ใช้ in-class member initialization ได้
const int x = 10;