C++繼承


在C++中,繼承是一個物件自動獲取其父物件的所有屬性和行為的過程。 在範例方式中,您可以重用,擴充套件或修改在其他類中定義的屬性和行為。

在C++中,繼承另一個類的成員的類稱為派生類,其成員被繼承的類稱為基礎類別。 派生類是基礎類別的子類。

C++繼承的優點

程式碼可重用性:現在可以重用父類別的成員。 因此,不需要再次定義那些跟父類別成員。 因此在類中需要較少的程式碼,提高了程式碼的重用。

#include <iostream>  
using namespace std;  
class Account {  
   public:  
   float salary = 60000;   
};

class Programmer: public Account {  
   public:  
   float bonus = 5000;    
};

int main(void) {  
     Programmer p1;  
     cout<<"Salary: "<<p1.salary<<endl;    
     cout<<"Bonus: "<<p1.bonus<<endl;    
    return 0;  
}

執行上面程式碼,輸出結果如下 -

Salary: 60000
Bonus: 5000

在上面的例子中,Employee是基礎類別,而Programmer類是派生類。

C++單級繼承範例:繼承方法

下面來看看看在繼承方法的C++繼承的另一個例子。

#include <iostream>  
using namespace std;  
 class Animal {  
   public:  
 void eat() {   
    cout<<"Eating..."<<endl;   
 }    
   };  
   class Dog: public Animal    
   {    
       public:  
     void bark(){  
    cout<<"Barking...";   
     }    
   };   
int main(void) {  
    Dog d1;  
    d1.eat();  
    d1.bark();  
    return 0;  
}

執行上面程式碼,輸出結果如下 -

Eating...
Barking...

C++多級繼承範例

當一個類繼承一個被另一個類繼承的類時,它被稱為C++中的多級繼承。 繼承是傳遞的,所以最後的派生類獲取所有其基礎類別的所有成員。

下面來看看看在C++中多級繼承的例子。

#include <iostream>  
using namespace std;  
 class Animal {  
   public:  
 void eat() {   
    cout<<"Eating..."<<endl;   
 }    
   };  
   class Dog: public Animal   
   {    
       public:  
     void bark(){  
    cout<<"Barking..."<<endl;   
     }    
   };   
   class BabyDog: public Dog   
   {    
       public:  
     void weep() {  
    cout<<"Weeping...";   
     }    
   };   
int main(void) {  
    BabyDog d1;  
    d1.eat();  
    d1.bark();  
     d1.weep();  
     return 0;  
}

執行上面程式碼,輸出結果如下 -

Eating...
Barking?
Weeping?