C++ 繼承 - 在派生類中對基類初始化


構造函數與基類的其他成員不同,不能被派生類繼承,因此為了初始化基類中的成員變量,需要在派生類中調用基類的構造函數(即顯式調用),如果派送類沒有調用則默認調用基類的無參構造函數(即隱式調用).
顯式調用的方式參考以下代碼:

//基類
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 受保護方式被繼承,那么基類的所有公有和受保護成員都會變成派生類的受保護成員.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM