在C++中,成员初始化表达式列表(Member Initializer List)是一种在构造函数体内部初始化类成员的方式。它通常用于初始化那些没有默认构造函数的成员,或者需要特定初始值的成员。成员初始化表达式列表位于构造函数体的花括号 {} 之前,并紧跟在构造函数头之后。
下面是一个简单的例子来说明成员初始化表达式列表的用法:
#include <iostream>
#include <string>
class MyClass {
public:
MyClass() {
std::cout << "default constructor called." << std::endl;
};
MyClass(int value, const std::string& name)
: memberValue(value), memberName(name) { // 成员初始化表达式列表
std::cout << "Constructor called." << std::endl;
}
void print() {
std::cout << "Value: " << memberValue << ", Name: " << memberName << std::endl;
}
private:
int memberValue;
std::string memberName;
};
int main() {
MyClass obj(10, "Example"); //声明类的实例时,编译器会基于重载决策选择要调用的构造函数
MyClass other;