由类forbit_mi,类one和类two以及类my组成了类继承的层次结构。在该结构中,类my的对象将包含两个类forbit_mi的子对象。由于类forbit_mi是派生类my两条继承路径上的一个公共基类,那么这个公共基类将在派生类的对象中产生多个基类子对象。如果要想使这个公共基类在派生类中只产生一个基类子对象,则必须将这个基类设定为虚基类。**虚基类的真正目的是为了解决二义性问题!
解决方案 »
- 求算法,如何填充一区域?
- Feautreu Package是好东西么?!CMFCRibbonApplicationButton有BUG么?!
- VC高难度操作网页? 内详
- 求助: 将 VB中对WORD的操作代码转换为VC 代码,所需转换的代码如下?
- ADO 编译错误 (在线等)
- 小问题,请教大家了.链接时警告:LINK : warning LNK4089: all references to "ODBC32.dll" discarded by /OPT:REF
- 列表视图(CListCtrl)中怎么将选中的项全部取消
- 用WINCAP时,PacketOpenAdapter调用返回0,error=2,不存在缓冲区太小的问题,那是什么问题?
- 如何由一个MSG* pMsg得到pMsg指向的消息的名称????
- 谁有有关图像文件格式的资料?
- 请问:怎样把一个文件复制或剪切到剪贴板上,然后把它粘贴到当前的位置?请指教,谢谢!
- 怎样才可以在两个应用程序共享一个变量?
to : hgw111(hg)
我也怀疑能否做到to : yu_hl(卖柴火的小男孩)
edrftgyh(老胡)
lshadow(光影)
jlqidan(jlqidan)
你们可能误会了我得意思。“虚基类可以解决只产生一个基类子对象”这一点我也非常清楚。我要得不是这一点,在编译时完全禁止多重继承。例如:
定义:
template<class T>
class no_inherit{
private:
no_inherit();
friend class T;
};
那么
class A:public no_inherit<A>{
};将不能被继承
class B : A 这样的代码将出错。
我要的就是类似的编译时刻的报错机制