什么是继承
继承(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++教程