在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
。我們在派生類的構造函數(shù)中使用成員初始化列表來初始化這兩個成員變量。
當創(chuàng)建一個Derived
類的對象時,首先會調用基類的構造函數(shù),然后調用派生類的構造函數(shù)。在這個例子中,輸出將如下:
Base constructor called
Derived constructor called
這表明基類和派生類的構造函數(shù)都已經被正確調用,成員變量也被正確初始化。