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?