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?