这个不想编译:
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)
忘记在 .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)
愚蠢的我!
| 归档时间: |
|
| 查看次数: |
1649 次 |
| 最近记录: |