c++中的继承
1:继承的概念及定义
a.继承的概念
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。
b.继承定义
定义格式:
class Student : public Person
{
public:
int _id;
int _major;
}
继承关系和访问限定符:
继承后基类成员的访问方式变化:
总结:
1:基类private成员不管以什么方式继承在派生类中都是不可见的,这里的不可见指的是基类的私有成员 还是被继承到了派生类对象中,但是语法上限制派生类对象不管是在类内还是类外都不能去访问它;
2:基类private成员在派生类中是不能被访问的,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected,可以看出保护访问限定符是因继承才出现的;
3:通过上面的表格可以发现,基类的私有成员在子类都是不可见的,基类其他成员在子类中的访问方式 = Min(成员在基类中的访问限定符,继承方式);
4:使用关键字class 默认的继承方式是private,使用关键字struct默认继承方式是public;
基类和派生类对象赋值转换
- 派生类对象可以赋值给基类的对象/引用/指针。这种行为称为切片或者切割,即把派生类中父类的那部分切下来赋值过去;
- 基类对象不能赋值给派生类对象;
- 基类的指针可以通过强制类型转换赋值给派生类的指针,但必须是基类的指针是指向派生类对象时才安全;
class Person