众所周知,C++与其他语言(如C#,JAVA)一个很大的不同就是C++支持从多个类继承。
但是多继承经常遇到这样一种情况,如果有两个或多个基类有相同名字和标记的方法,
继承类该怎么去实现。如有2个基类,代码如下:
小弟我研究了一下MFC和ATL中COM实现的部分,发现它们都很好地解决了这一问题,难能可贵的是
它们的解决方式都不一样。下面我简单地介绍一下。由于MFC和ATL源码都比较庞大,而且充斥着很多宏,
在屏幕中列出来势必会影响篇幅,小弟不才,仿照它们的风格简单地写个示例。
先看MFC风格的实现:
MFC采取嵌套类的方式来模拟出现这种问题的多继承,有点麻烦而且不直观,但却是很有一般性。先上代码: