请问多继承路线有关问题

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