構造函數與基類的其他成員不同,不能被派生類繼承,因此為了初始化基類中的成員變量,需要在派生類中調用基類的構造函數(即顯式調用),如果派送類沒有調用則默認調用基類的無參構造函數(即隱式調用).
顯式調用的方式參考以下代碼:
//基類
class animal{
protected:
int height;
public:
animal(){
height=0;
}
animal(int height){
this->height=height;
}
};
//派生類
class fish:public animal{
public:
fish(){
//
}
fish(int height):animal(height){
//
}
};
//fish m_fish(3); then animal->height = 3;
- 如果基類以public 公有方式被繼承,則基類的所有公有成員都會成為派生類的公有成員.受保護的基類成員成為派生類的受保護成員
- 如果基類以private 私有被繼承,則基類的所有公有成員都會成為派生類的私有成員.基類的受保護成員成為派生類的私有成員.
- 如果基類以protected 受保護方式被繼承,那么基類的所有公有和受保護成員都會變成派生類的受保護成員.