这个不想编译:
class MainClass
{
public:
...
private:
class NestedClass
{ //Line 39
...
};
class NestedClass * getNestedClassFor(int i);
};
编译器说:
但是,如果我将NestedClass设置为
public
,它将可以正常工作。为什么不起作用?我好像不是通过公共(public)方法导出嵌套类?这只是一个私有(private)方法,它返回一个指向私有(private)类的指针。有任何想法吗?
谢谢!
更新
修复了半列。他们不是问题。都不在NestedClass前面编写
class
。这是错误消息:
这是.cpp文件中也有提示的部分:
class MainClass::NestedClass * getNestedClassFor(int i) //Line 49
{
return NULL;
}
最佳答案
忘记在.cpp中添加类范围,即
class MainClass::NestedClass * getNestedClassFor(int i)
{
//...
}
应该
class MainClass::NestedClass * MainClass::getNestedClassFor(int i)
{
//...
}
愚蠢的我!
关于c++ - 无法在C++中使私有(private)方法返回指向私有(private)嵌套类的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9015903/