前言
c++类每个成员都可以在初始化列表中指定一个初始值,但对于const成员变量和引用成员变量,必须要在初始化列表中进行初始化,在其它地方会报编译错误;
一、初始化引用成员变量
#include <iostream>
class MyClass {
public:
// 构造函数的参数为引用类型
MyClass(int& ref) : m_ref(ref) {
// 引用成员变量在初始化列表中进行初始化
}
void printRef() {
std::cout << "引用成员变量的值为: " << m_ref << std::endl;
}
private:
int& m_ref; // 引用成员变量
};
int main() {
int a = 10;
MyClass myObj(a); // 初始化引用成员变量
myObj.printRef(); // 输出引用成员变量的值
return 0;
}
二、初始化const成员变量
class MyClass {
public:
MyClass(int value): myConstValue(value) {
// 构造函数体
}
private:
const int myConstValue;
};
在上面的代码中,myConstValue 是一个 const 成员变量,它在 MyClass 的构造函数初始化列表中被初始化为 value。这个 const 成员变量不能在构造函数内部修改。
注意,初始化 const 成员变量时必须在初始化列表中指定初始值,否则编译器会报错。