在C++
问题描述:
使用私有类时,没有在此范围内误差宣布我有一类在C++
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
我错在哪里?
答
您在使用内部类声明它
之前修复:
class myInnerClass
{
// Design for this private class
};
std::list <myInnerClass> mylists;
答
您使用myInnerClass
声明之前。
这段代码可以编译:
class myClass
{
private:
class myInnerClass
{
// Design for this private class
}
std::list <myInnerClass> mylists;
}
答
首先必须声明的内部类,然后你可以用它
您的代码
class myClass
{
private:
std::list <myInnerClass> mylists;
class myInnerClass
{
// Design for this private class
}
}
正确的代码:
class myClass
{
private:
class myInnerClass
{
// Design for this private class
}
std::list <myInnerClass> mylists;
}
+1
第三次重复相同的答案有什么意义?前两次发布后几分钟 – StoryTeller
'myInnerClass'不存在当你声明'std :: list mylists;'时。一般来说,在使用它们之前,你需要声明一些东西。 –
nwp
因为编译到达'std :: list mylists;'行时还没有被声明?在这个变量的声明之上移动'myInnerClass'的声明。 –
在我的私人类的定义解决了问题后定义我的列表。谢谢,我认为在这种情况下,这个职位非常有益。 – user2896152