【发布时间】:2018-03-01 13:08:39
【问题描述】:
我有课
class myClass
{
private:
std::list <myInnerClass> mylists;
class myInnerClass
{
// Design for this private class
}
}
我不明白为什么std::list <myInnerClass> mylists 行给了我以下错误:
- Type 'myInnerClass' was not declared in this scope
- Type 'myInnerClass' could not be resolved
我哪里错了?
【问题讨论】:
-
myInnerClass在您声明std::list <myInnerClass> mylists;时不存在。通常,您需要先声明事物,然后才能使用它们。 -
因为它还没有被声明,当编译到达
std::list <myInnerClass> mylists;行时?将myInnerClass的声明移到此类变量的声明之上。 -
在我的私有类的定义解决了问题之后再定义我的列表。谢谢,我认为这个职位在这种情况下是无关紧要的。
-
它仅与成员变量和函数“无关”。这是 C++ IMO 的一个令人讨厌的边缘。
-
颠倒
myinnerclass的顺序,使其在std::list <myInnerClass> mylists;之前,不要忘记分号。