在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
這表明基類和派生類的構造函數都已經被正確調用,成員變量也被正確初始化。