C++多继承中二义性问题--虚基类

原创 2005年04月27日 15:58:00

#include <iostream>
class Base
{
      public:
             Base()
             {
                   std::cout<<"Base Constructor"<<std::endl;
             }
             ~Base()
             {
                    std::cout<<"Base Deconstructor"<<std::endl;
             }
             void SetBase_Varible(int i)
             {
                  Base_Varible=i;
             }
             int GetBase_Varible()
             {
                  return Base_Varible;
             }
      private:
              int Base_Varible;
};
class DerivedOne:virtual public Base
{
      public:
             DerivedOne()
             {
                      std::cout<<"DerivedOne Constructor"<<std::endl;
                      SetBase_Varible(1);
             }
             ~DerivedOne()
             {
                      std::cout<<"DerivedOne Deconstructor"<<std::endl;
             }
};
class DerivedTwo:virtual public Base
{
      public:
             DerivedTwo()
             {
                      std::cout<<"DerivedTwo Constructor"<<std::endl;
                      SetBase_Varible(2);
             }
             ~DerivedTwo()
             {
                      std::cout<<"DerivedTwo Deconstructor"<<std::endl;
             }
};
class DerivedThree:public DerivedOne,DerivedTwo
{
      public:
             DerivedThree()
             {
                      std::cout<<"DerivedThree Constructor"<<std::endl;
                      std::cout<<GetBase_Varible()<<std::endl;
             }
             ~DerivedThree()
             {
                      std::cout<<"DerivedThree Deconstructor"<<std::endl;
             }
};
int main()
{
    DerivedThree *x=new DerivedThree();
    delete x;
    std::system("PAUSE");
    return 0;
}

相关文章推荐

第十一章[2]:多继承中二义性的解决方案(类名+虚基类)

二义性定义:一个派生类有多个基类,对应的多个基类中有元素名称相同的元素的情况 下面是二义性的解决方案 【用类名解决】 /* * 题目名称:二义性的解决方案应用 * 认为输出:class base1: ...
  • cdan134
  • cdan134
  • 2016年08月21日 21:11
  • 170

C++虚基类解决二义性问题及执行结果分析

由于C++中允许多继承,所以会出现二义性问题:在多个派生类中,定义了相同名字的方法,这时再在main函数里面通过基类调用该方法时,编译器就犯难了。因为它不知道你到底是想用哪一个派生类里面的方法。 ...

从多重继承中的二义性 到 虚基类(摘抄自谭浩强c++)

一个多重继承的程序 #include using namespace std; class Teacher { public: Teacher(string nam,int a,string...
  • wsyxhwj
  • wsyxhwj
  • 2016年05月11日 16:15
  • 394

c++多继承与虚基类

转载自:http://blog.csdn.net/insistgogo/article/details/6653301 多继承的定义:派生类的基类大于一个 语法: [...

C++多继承与虚基类

》多继承中的二义性问题         在派生类中对基类成员的访问应该是唯一的。但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不唯一的情况,这时就称对基类成员的访问产生了二义性。   ...

C++_多继承与虚基类

多继承的定义:派生类的基类大于一个 语法: class 派生类名:继承方式1 基类名1,继承方式2 基类名2... { }; 多重继承与构造函数的关系: 多重继承时构造函数的作用: ...

Java 的 interface、abstract class 与 C++ 的多继承、虚基类

Java 与 C++ 的主要区别 1.Java 支持反射,C++ 不支持反射; 2.Java 单继承,只能通过 interface 实现多继承;C++ 支持多继承,并且支持虚继承。 3.Java 不支...

多继承与虚基类

  • 2013年05月14日 19:01
  • 24KB
  • 下载

多继承和虚基类PPT

  • 2008年11月18日 13:27
  • 266KB
  • 下载

C++的二义性和虚基类

C++的二义性和虚基类 一、二义性问题 1.在继承时,基类之间、或基类与派生类之间发生成员同名时,将出现对成员访问的不确定性——同名二义性。 2.当派生类从多个基类派生,而这些基类又从同一个...
  • tyegong
  • tyegong
  • 2013年08月27日 16:57
  • 572
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++多继承中二义性问题--虚基类
举报原因:
原因补充:

(最多只允许输入30个字)