在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++繼承的另一個例子。
#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++中多級繼承的例子。
#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?