什麼是繼承
繼承(Inheritance)可以理解爲一個類從另一個類獲取成員變量和成員函數的過程。
派生(Derive)和繼承是一個概念,只是站的角度不同。
繼承是兒子接收父親的產業,派生是父親把產業傳承給兒子。
被繼承的類稱爲父類或基類,繼承的類稱爲子類或派生類。
“子類”和“父類”通常放在一起稱呼,“基類”和“派生類”通常放在一起稱呼。
繼承的使用場景
-
當你創建的新類與現有的類相似,只是多出若干成員變量或成員函數時,可以使用繼承,
這樣不但會減少代碼量,而且新類會擁有基類的所有功能。 -
當你需要創建多個類,它們擁有很多相似的成員變量或成員函數時,也可以使用繼承。
可以將這些類的共同成員提取出來,定義爲基類,然後從基類繼承,既可以節省代碼,也方便後續修改成員。
這些都是大型C++工程的重要組件。
C++繼承的語法
class 派生類名:[繼承方式] 基類名{
派生類新增加的成員
};
繼承方式限定了基類成員在派生類中的訪問權限,包括 public(公有的)、private(私有的)和 protected(受保護的)。
C++繼承代碼實踐
#include <iostream>
using namespace std;
class People{
public:
void setname(char *name);
void setage(int age);
char *getname();
int getage();
private:
char *m_name;
int m_age;
};
void People::setname(char *name) {m_name = name;}
void People::setage(int age) {m_age = age;}
char* People::getname() { return m_name;}
int People::getage() { return m_age;}
// 派生類 student
class Student: public People{
public:
void setscore(float score);
float getscore();
private:
float m_score;
};
void Student::setscore(float score) {m_score = score;}
float Student::getscore() { return m_score;}
int main() {
Student stu;
stu.setname("小明");
stu.setage(16);
stu.setscore(95.5f);
cout << stu.getname() << "的年齡是 " << stu.getage() << ", 成績是 "<< stu.getscore()<<endl;
return 0;
}
// 小明的年齡是 16, 成績是 95.5
參考C語言中文網C++教程