无法在C++中创建私有方法返回指向私有嵌套类的指针

Alb*_*ore 6 c++

这个不想编译:

class MainClass
{
public:
    ...

private:
    class NestedClass
    { //Line 39
        ...
    };

    class NestedClass * getNestedClassFor(int i);
};
Run Code Online (Sandbox Code Playgroud)

编译器说:

错误:'class MainClass :: NestedClass'是私有的

但是,如果我制作了NestedClass public,它就可以了.

为什么不起作用?这不是我通过公共方法导出嵌套类?它只是一个返回指向私有类的指针的私有方法.有任何想法吗?

谢谢!

更新

修复了半列.他们不是问题.也没有class在NestedClass面前写作.

这是错误消息:

MainClass.h:在函数'MainClass :: NestedClass*getNestedClassFor(int i)'中:

MainClass.h:39:错误:'class MainClass :: NestedClass'是私有的

MainClass.cpp:49:错误:在此上下文中

这是.cpp文件的一部分,也是抱怨:

class MainClass::NestedClass * getNestedClassFor(int i) //Line 49
{
    return NULL;
}
Run Code Online (Sandbox Code Playgroud)

Alb*_*ore 4

忘记在 .cpp 中添加类范围,即

class MainClass::NestedClass * getNestedClassFor(int i)
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

应该

class MainClass::NestedClass * MainClass::getNestedClassFor(int i)
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

愚蠢的我!