请问多继承路线有关问题
请教多继承路线问题
------解决方案--------------------
执行强制转换(BASE_A*)DERIVEED,可以将调用属于BASE_A的虚接口
在codeblocks中测试你的结构体,c语言下也是以内部定义为准
------解决方案--------------------
1,IUnkown 中有纯虚函数QueryInterface
你问能不能调用虚函数,既然有纯虚函数,那么你这个类是作为了接口使用的,那么继承他的子类应当是有重写虚函数的,所以你可以通过多态的方式来调用的成员方法。
2,你的结构体相当于你的class的方法和数据都是public属性,其他的都一致
- C/C++ code
问题1: 多继承问题 //IUnkown 中有纯虚函数QueryInterface class 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属性,其他的都一致