请教多继承路线问题
- 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属性,其他的都一致