如果不想访问子类的同名成员,可以在子类成员函数中显示调用父类的成员.
显示调用格式: 基类: 基类成员
出现相同的名称的变量终究是容易让人混乱的,还是不建议在子类和父类中定义同名成员变量....那在派生类中,这几个成员函数是如何生成的呢?
(1) 构造函数:
派生类的构造函数必须调用基类的构造函数,利用基类的构造函数去初始化基类的部分.并且是先调用基类的构造之后,再去构造派生类的成员....(3拷贝构造与赋值运算符重载:
派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。
派生类的operator=必须要调用基类的operator=完成基类的复制。...不难发现,m中,People类有两个,也就意味着m对象里面有两个_a,这也就导致了数据冗余,和数据访问的二义性.
那菱形继承的这两个问题该如何解决呢?...继承允许你根据基类的实现来定义派生类的实现。在继承方式中,基类的内部细节对子类可见 。继承一定程度破坏了基类的封装,基类的改变,对派生类有很大的影响。派生类和基类间的依赖关系很强,耦合度高。