<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # C++ 中的繼承 > 原文: [https://beginnersbook.com/2017/08/cpp-inheritance/](https://beginnersbook.com/2017/08/cpp-inheritance/) 繼承是[面向對象編程系統(OOP)](https://beginnersbook.com/2017/08/cpp-oops-concepts/)的特性之一,它允許子類獲取父類的屬性(數據成員)和函數(成員函數)。 **什么是子類?** 繼承另一個類的類稱為子類,它也稱為派生類。 **什么是父類?** 被其他類繼承的類稱為父類,超類或基類。 #### 繼承語法 ```cpp class parent_class { //Body of parent class }; class child_class : access_modifier parent_class { //Body of child class }; ``` ## 在 C++編程中使用繼承有什么好處 繼承的主要優點是**代碼可重用性**和**可讀性**。當子類繼承父類的屬性和函數時,我們不需要在子類中再次編寫相同的代碼。這使得重用代碼變得更容易,使我們編寫更少的代碼,代碼變得更具可讀性。 讓我們來看一個**現實生活中的例子**來理解這一點:讓我們假設`Human`是一個具有`height`,`weight`,`color`等屬性的類,以及諸如`eat()`,`sleep()`,`dream()`,`work()`等函數。 現在我們要創建`Male`和`Female`類,這些類是不同的,但由于男性和女性都是人類,他們共享一些共同的屬性和行為(函數),所以他們可以繼承`Human`類,其余的那些屬性和函數可以單獨寫在它們的類中。 這種方法使我們編寫更少的代碼,因為這兩個類從基類繼承了幾個屬性和函數,因此我們不需要重寫它們。此外,這使得更容易閱讀代碼。 ## 繼承示例 在我們討論繼承類型之前,讓我們舉個例子: 這里我們有兩個類`Teacher`和`MathTeacher`,`MathTeacher`類繼承了`Teacher`類,這意味著`Teacher`是一個父類,`MathTeacher`是一個子類。子類可以使用父類的屬性`collegeName`。 > 另一個要注意的重點是,當我們創建子類的對象時,它調用子類的構造函數,子類構造函數自動調用基類的構造函數。 ```cpp #include <iostream> using namespace std; class Teacher { public: Teacher(){ cout<<"Hey Guys, I am a teacher"<<endl; } string collegeName = "Beginnersbook"; }; //This class inherits Teacher class class MathTeacher: public Teacher { public: MathTeacher(){ cout<<"I am a Math Teacher"<<endl; } string mainSub = "Math"; string name = "Negan"; }; int main() { MathTeacher obj; cout<<"Name: "<<obj.name<<endl; cout<<"College Name: "<<obj.collegeName<<endl; cout<<"Main Subject: "<<obj.mainSub<<endl; return 0; } ``` **輸出:** ```cpp Hey Guys, I am a teacher I am a Math Teacher Name: Negan College Name: Beginnersbook Main Subject: Math ``` ## C++ 中的繼承類型 1)單一繼承 2)多級繼承 3)多重繼承 4)分層繼承 5)混合繼承 ### 單繼承 在單繼承中,一個類完全繼承一個類。 例如:假設我們有`A`類和`B`類. ```cpp B inherits A ``` **單一繼承的例子:** ```cpp #include <iostream> using namespace std; class A { public: A(){ cout<<"Constructor of A class"<<endl; } }; class B: public A { public: B(){ cout<<"Constructor of B class"; } }; int main() { //Creating object of class B B obj; return 0; } ``` 輸出: ```cpp Constructor of A class Constructor of B class ``` ### 2)多級繼承 在這種類型的繼承中,一個類繼承另一個子類。 ```cpp C inherits B and B inherits A ``` **多級繼承示例:** ```cpp #include <iostream> using namespace std; class A { public: A(){ cout<<"Constructor of A class"<<endl; } }; class B: public A { public: B(){ cout<<"Constructor of B class"<<endl; } }; class C: public B { public: C(){ cout<<"Constructor of C class"<<endl; } }; int main() { //Creating object of class C C obj; return 0; } ``` 輸出: ```cpp Constructor of A class Constructor of B class Constructor of C class ``` ### 多重繼承 在多繼承中,類可以繼承多個類。這意味著在這種類型的繼承中,單個子類可以具有多個父類。 例如: ```cpp C inherits A and B both ``` **多重繼承的例子:** ```cpp #include <iostream> using namespace std; class A { public: A(){ cout<<"Constructor of A class"<<endl; } }; class B { public: B(){ cout<<"Constructor of B class"<<endl; } }; class C: public A, public B { public: C(){ cout<<"Constructor of C class"<<endl; } }; int main() { //Creating object of class C C obj; return 0; } ``` ```cpp Constructor of A class Constructor of B class Constructor of C class ``` ### 4)分層繼承 在這種類型的繼承中,一個父類具有多個子類。例如: ```cpp Class B and C inherits class A ``` **分層繼承的例子:** ```cpp #include <iostream> using namespace std; class A { public: A(){ cout<<"Constructor of A class"<<endl; } }; class B: public A { public: B(){ cout<<"Constructor of B class"<<endl; } }; class C: public A{ public: C(){ cout<<"Constructor of C class"<<endl; } }; int main() { //Creating object of class C C obj; return 0; } ``` 輸出: ```cpp Constructor of A class Constructor of C class ``` ### 5)混合繼承 混合繼承是多種繼承類型的組合。例如,遵循多重和分層繼承的子類和父類關系都可以稱為混合繼承。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看