一、继承
1、当遇到问题时,先查看现有的类能否解决一部分问题,如果有则通过继承语法,在此类的举出上进行扩展来解决问题,来缩短解决问题的时间(代码复用)
2、当遇到一个复杂问题时,可以先把复杂问题分解成若干个小问题,然后为每个问题设计一个类进行解决,最终通过继承语法把这些类汇总到一个类中,达到解决问题的目的,以此降低解决的难度,同时也可以让多个程序员同时解决该问题
二、继承的语法
1、继承表
class Test:继承表[继承方式 父类]
{
成员变量;
public:
成员函数;
}
2、继承方式:
public
private
protected
三、继承的特点
1、C++中的继承可以有多个父类
2、子类会继承父类的所有内容
3、子类对象可以向父类转换(缩小),但是父类对象不能向子类转换(放大)
4、子类会隐藏父类的同名成员,在子类中直接访问到的是子类成员;可以使用域限定符(::)指定访问父类中的同名成员
5、子类与父类的同名函数无法构成重载,因为不在同一个作用域下,子类中会像隐藏成员变量一样隐藏成员函数
6、在执行子类的构造函数前会按照继承表的继承顺序执行父类的构造函数,默认执行的是父类的无参构造,可以在子类的构造函数初始化列表中显式调用父类的有参构造
7、在子类的析构函数执行完成后,会按照继承表的继承顺序,逆序执行父类的析构函数
8、当子类执行拷贝构造时,默认调用父类的无参构造,要在初始化列表中显式调用父类的拷贝构造
9、当子类执行赋值函数时,默认不会调用父类的赋值函数,如果需要调用父类的赋值函数,需要加域限定符和赋值函数名
父类::operator=(obj);