读书人

请问多继承路线有关问题

发布时间: 2012-10-17 10:25:47 作者: rapoo

请教多继承路线问题

C/C++ code
问题1:多继承问题//IUnkown    中有纯虚函数QueryInterfaceclass ISomeInterface:  public IUnkown    //IUnkown    中有纯虚函数QueryInterface{};class CA:public ISomeInterface, public INodelegationUnkown{private:IUnkown* m_pUnkownOuter;//............};HRESULT CA::QueryInterface(参数1, 参数2){if( m_pUnkownOuter){return m_pUnkownOuter->QueryInterface(,);        //这里的语法问题}else{}}由于CA不是单继承, 所以 CA* 不能转换为IUnkown*.  那么 IUnkown* 能否调用 虚函数?问题2:c  中结构体的作用域问题struct A{};void fun(){struct A{};};//c中和c++中, 对A的处理似乎不一样,c++在函数fun中自然屏蔽了 fun外层的A,但是C中,似乎没有屏蔽


[解决办法]
执行强制转换(BASE_A*)DERIVEED,可以将调用属于BASE_A的虚接口
在codeblocks中测试你的结构体,c语言下也是以内部定义为准
[解决办法]
1,IUnkown 中有纯虚函数QueryInterface
你问能不能调用虚函数,既然有纯虚函数,那么你这个类是作为了接口使用的,那么继承他的子类应当是有重写虚函数的,所以你可以通过多态的方式来调用的成员方法。

2,你的结构体相当于你的class的方法和数据都是public属性,其他的都一致

读书人网 >C++

热点推荐