在使用C 中使用私有类时,在此范围错误中没有声明

Was not declared in this scope error when using private class in C++

本文关键字:范围 错误 声明      更新时间:2023-10-16

我有一个类

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

此代码将编译:

class myClass
{
    private:
       class myInnerClass
       {
            // Design for this private class
       }
       std::list <myInnerClass> mylists;
}

在声明它之前,您正在使用内部类

修复:

   class myInnerClass
   {
        // Design for this private class
   };
   std::list <myInnerClass> mylists;