🌟hello,各位读者大大们你们好呀🌟
🍭🍭系列专栏:【C++学习与应用】
✒️✒️本篇内容:继承的基础概念,定义方法,基类和派生类的转换,继承中类的作用域,什么是隐藏,派生类和默认成员函数,继承和友元,继承与静态函数,菱形继承和虚拟继承,菱形继承总结(继承组合的优劣分析)
🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-
目录
一、继承的概念及定义
1.继承的概念
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。
代码示例(如下)
#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
void Print()
{
cout << "name:" << _name << endl;
cout << "age:" << _age << endl;
}
protected:
string _name = "peter"; // 姓名
int _age = 18; // 年龄
};
// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了
// Student和Teacher复用了Person的成员。
class Student : public Person
{
protected:
int _stuid; // 学号
};
class Teacher : public Person
{
protected:
int _jobid; // 工号
};
int main()
{
Student s;
Teacher t;
s.Print();
t.Print();
return 0;
}
运行结果如下 ,证明了Student和Teacher复用了Person的成员。
2.继承的定义
(1)定义格式
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。
(2)继承关系和访问限定符
(3)继承基类成员访问方式的变化
类成员
/
继承方式
|
public继承 | protected继承 | private继承 |
基类的public成员 | 派生类的public成员 |
派生类的
protected
成员
|
派生类的
private
成员
|
基类的
protected
成员
|
派生类的
protected
成员
|
派生类的
protected
成员
|
派生类的
private
成员
|
基类的
private
成
员
|