Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การ Initialize Const Member Variable ใน C++ Class

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;