1.继承2.派生3.虚基类实验内容:理解继承和派生的概念,在单继承或(多重继承)情况下,如何实现各个类的构造函数?掌握三种权限(public、protected和private)下,派生类对象或派生类成员对直接基类或间接基类中各种成员的访问权限。如何消除派生类对象对派生类成员访问的二义性问题。
1个回答
关注
展开全部
在单继承或多重继承情况下,派生类的构造函数应当调用基类的构造函数来完成基类部分的初始化,在多重继承情况下,可能会出现派生类对象对派生类成员访问的二义性问题,为了消除这种二义性,可以使用虚基类,虚基类是在多重继承中使用的一种机制,可以保证在派生类中只有一个基类实例。
咨询记录 · 回答于2023-06-15
1.继承2.派生3.虚基类实验内容:理解继承和派生的概念,在单继承或(多重继承)情况下,如何实现各个类的构造函数?掌握三种权限(public、protected和private)下,派生类对象或派生类成员对直接基类或间接基类中各种成员的访问权限。如何消除派生类对象对派生类成员访问的二义性问题。
打字需要一点时间,您也可以更详细的描述一下问题。
在单继承或多重继承情况下,派生类的构造函数应当调用基类的构造函数来完成基类部分的初始化,在多重继承情况下,可能会出现派生类对象对派生类成员访问的二义性问题,为了消除这种二义性,可以使用虚基类,虚基类是在多重继承中使用的一种机制,可以保证在派生类中只有一个基类实例。
各个类的构造函数如下:class Base {public: int m_x,class Derived1 : virtual public Base {public: int m_y,class Derived2 : virtual public Base {public: int m_z,class MyClass : public Derived1, public Derived2 {public: void foo() { m_x = 1, // m_x不再有二义性 }}。