0
class Base {
public:
Base(){ }
virtual void Bfun1();
virtual void Bfun2();
};
class Derv : public Base {
public:
Derv(){ }
void Dfun1();
};
上面的定义和下面的定义有区别吗?他们是一样的吗?如果不是两者在功能上有什么不同?虚拟继承查询
class Base {
public:
Base(){ }
void Bfun1();
void Bfun2();
};
class Derv : public virtual Base {
public:
Derv(){ }
void Dfun1();
};
typo ..阅读构造函数为public。 class base { public: Base(){} virtual void Bfun1(); virtual void Bfun2(); }; class Derv:public Base { Derv(){} void Dfun1(); }; 上面的定义和下面的定义有区别吗?他们是一样的吗?如果不是两者在功能上有什么不同? class base { Base(){} public: void Bfun1(); void Bfun2(); }; class Derv:public virtual Base { Derv(){} public: void Dfun1(); }; – irappa 2011-05-28 23:14:55
简答:是的,他们不一样。长答案:读你的书;) – 2011-05-28 23:17:54
阅读建议:[什么是“可怕的钻石”?](http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.8)。 .. [[我应该使用虚拟继承吗?](http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.9) – Nawaz 2011-05-28 23:26:44