1. 程式人生 > >42)子類繼承 有參父類 和無參父類

42)子類繼承 有參父類 和無參父類

.com 調用父類 () 類繼承 cout include src 分享圖片 重載

1) 子類繼承有參的父類,那麽 必須在子類的 構造函數的初始化列表那裏,給父類賦值,比如說

    父類 Student 的構造函數 是 Student(int age ,string name)

    然後我的子類的構造函數 須是:

            Student3(int age ,string name,int sorce):Student(age,name)

            { }

 2)總之,不管你是 有參父類構造函數 還是無參構造函數 那麽就有了 只要實例化子類,就會調用父類的構造函數

    為啥--> 因為子類的內存區域,有一塊屬性內存是父類的相關屬性,所以啊 你實例化子類,和父類相關的那塊內存,

          要用父類的構造函數來初始化,剩下的,靠子類自己的構造函數   

 1 #include<iostream>
2 using namespace std;
3 class student 4 { 5 public: 11 student() 12 { 15 cout<<"大家好。我是父類的構造函數"<<endl; 16 } 17 private: 18 int
a; 20 };

21 class ss:public student 22 { 23 public:29 ss() 30 { 31 cout<<"大家好,我是子類的構造函數"<<endl; 32 } 33 34 }; 35 int main() 36 { 37 38 ss cc; 42 }

      最終的運行結果:

    技術分享圖片

  然後 有參的 父類:
  

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 class student
6 { 7 public: 8 student(int a,int b) 9 { 10 cout<<"大家好。我是父類的構造函數"<<endl; 11 } 12 private: 13 int a; 14 }; 15 16 17 class ss:public student 18 { 19 public: 20 ss(int a,int b):student(a,b) 21 { 22 cout<<"大家好,我是子類的構造函數"<<endl; 23 } 24 25 }; 26 int main() 27 { 28 29 ss cc(2,3); 30 }

3)派生類(子類) 基類(父類)

   

    技術分享圖片

 

4)就是 你的子類 在寫構造時

    student3() 這樣的子類構造 會默認調用父類的無參構造 (只要實例化子類,肯定會調用父類的構造函數,所以 要是有參構造,必須在子類的構造函數初始化列表給初始化)

但是 你可以寫一個 無參的父類構造, 來 重載那個有參的,這樣 就不用在你的子類構造函數初始化列表那裏 給初始化 父類了

5)

42)子類繼承 有參父類 和無參父類