多继承实现COM类中的"菱形问题" C++也有一样的菱形问题
来源:互联网 发布:mac如何写入移动硬盘 编辑:程序博客网 时间:2024/04/30 19:43
所有的COM接口類都是繼承自 IUnknow ,當一個COM類要使用兩個接口時,就會形成一個"蔆形"的繼承關繫.
例如
class base
{
virtual vf (){cout<<"base"<<endl;}
};
class c1:public base
{
virtual vf(){cout<<"c1"<<endl;}
}
class c2:public base
{
virtual vf(){cout<<"c2"<<endl;}
}
//上麵的代碼中 c1 和c2均繼承自 base
class misc :public c1,public c2
{
}
然后开始使用 misc class
main()
{
base *pbase=new misc;
pbase->vf();//你觉得这种情况下应该调用谁的vf()好呢? (c1,c2都含有vf()) 应该给misc制定一个vf()
}
则 misc 变成这样:
class misc: public c1,public c2
{
virtual vf(){cout<<"I'm misc."<<endl;
}
就可以了..
依据c++编程思想,这样的菱形继承还会引发另外一个问题,不过我没能理解是什么意思....
理解能力差啊..
- 多继承实现COM类中的"菱形问题" C++也有一样的菱形问题
- 菱形继承与菱形虚拟继承的相关问题
- c++-关于菱形继承&虚继承的问题总结
- 菱形继承问题
- 菱形继承问题
- 菱形继承问题(default)
- volatile的作用和菱形继承问题
- 什么是菱形继承带来的二义性问题
- 菱形继承->菱形虚拟继承(继承系列问题)
- 菱形问题
- 【C++】菱形继承与虚拟菱形继承的对比分析
- 菱形继承(虚函数)->菱形虚拟继承(虚函数)->多态系列问题
- MBProgressHud的显示异常有问题(有黑色菱形)
- 菱形继承引发的问题和解决方案,以及底层实现的原理.
- c++菱形继承产生的问题及解决
- 菱形继承的二义性和数据冗余问题
- C++中的 菱形继承
- 【C++】菱形继承
- Medical Image Analysis
- 手机型号大揭密
- 一分钟学会实现Suggest功能的AJAX样例
- Rundll32.exe使用方法大全
- 更改注册表的几个函数
- 多继承实现COM类中的"菱形问题" C++也有一样的菱形问题
- 刘炯朗教授在CNCC2005上的发言总结
- 人见人爱的27个原则
- 远程更改注册表
- 修改网卡MAC地址
- vc常用技巧
- 我只想活得轻松一点而已
- Visual C++编程技巧
- [C++] 何时使用vector