内类基类的特例

And*_*rei 4 c++ inheritance inner-classes

在c ++中,是否可以声明内部类(CInner),使其具有外部类(COuter)作为其基类?

这个问题是关于c ++技术问题的.不是编程风格或个人喜好的问题.

Joh*_*eek 9

是.这编译:

class COuter
{
    class CInner;
};

class COuter::CInner : public COuter
{
};
Run Code Online (Sandbox Code Playgroud)

这是必需的原因是派生类要求整个定义存在于其自己的定义中.所以你只需要确保在内部类的定义开始之前完全定义外部类.