在C++中,成员初始化列表主要用于初始化类的成员变量。当处理继承关系时,成员初始化列表可以确保基类和派生类的成员变量都被正确初始化。以下是一个简单的例子,展示了如何使用成员初始化列表处理继承关系:
#include <iostream>
class Base {
public:
Base() : value(0) {
std::cout << "Base constructor called" << std::endl;
}
protected:
int value;
};
class Derived : public Base {
public:
Derived() : Base(), derivedValue(42) {
std::cout << "Derived constructor called" << std::endl;
}
private:
int derivedValue;
};
int main() {
Derived d;
return 0;
}
在这个例子中,我们有一个基类Base
和一个派生类Derived
。基类有一个成员变量value
,派生类有一个成员变量derivedValue
。我们在派生类的构造函数中使用成员初始化列表来初始化这两个成员变量。
当创建一个Derived
类的对象时,首先会调用基类的构造函数,然后调用派生类的构造函数。在这个例子中,输出将如下:
Base constructor called
Derived constructor called
这表明基类和派生类的构造函数都已经被正确调用,成员变量也被正确初始化。