菱形继承

来源:互联网 发布:2.0音箱推荐 知乎 编辑:程序博客网 时间:2024/06/04 03:49
/**菱形继承 与 虚拟继承*/class SWYA{public:SWYA() :a(0) { cout << "construct A\n"; }~SWYA() { cout << "deconstruct A\n"; }public:virtual void fun() { cout << "fun\n"; }public:int a;};class SWYB :public /*virtual*/ SWYA{public:SWYB() { cout << "construct B\n"; }~SWYB() { cout << "deconstruct B\n"; }};class SWYC :public /*virtual*/ SWYA{public:SWYC() { cout << "construct C\n"; }~SWYC() { cout << "deconstruct C\n"; }};class SWYD :public SWYB, public SWYC{public:SWYD() { cout << "construct D\n"; }~SWYD() { cout << "deconstruct D\n"; }};/**菱形继承 与 虚拟继承*/int main(){SWYD* d = new SWYD();d->SWYA::a = 1;d->SWYB::a = 2;d->SWYC::a = 3;//d->a = 4;//d->fun();//d->a = 5;//d->a = 6;1 == 0;delete d;}