C++通过继承关系,实现代码的可重用性
继承方式public:
没有影响 子类的成员访问方式
影响了父类的成员在子类的访问方式,在子类内,还是子类对象
子类不会继承父类的构造器
子类只需要对父类负责,不需要对父类的父类负责
父类的父类,由父类负责
类中的子对象的初始化
初始化顺序
父类初始化,类对象初始化,本类的初始化
初始化顺序示例:
通过重载或者默认参数的形式,一定要包含标配情况
子类未实现拷贝构造时,会调用父类的拷贝构造器(无论父类实现与否)
子类一旦实现拷贝构造,则必须显式调用父类拷贝构造器
拷贝构造器不能继承(构造器、析构器不能继承)
子类未实现赋值重载时,会调用父类的赋值重载(无论实现与否)
子类一旦实现赋值重载,就不会主动调用父类的赋值重载
赋值重载不属于构造器,可以从父类继承
父类和子类的成员重名
子类中会把父类的重名成员shadow
绝对不要使子类的成员名和父类的成员名重名
这种现象只和函数名有关,函数名相同即可构成shadow
中间结果不能赋给引用,但是可以赋给const引用