简体   繁体   English

在C ++中使用私有类时未在此作用域错误中声明

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

I've a class 我上课

class myClass
{
    private:

       std::list <myInnerClass> mylists;

       class myInnerClass
       {
            // Design for this private class
       }
}

I can't understand why the line std::list <myInnerClass> mylists gives me the following error: 我不明白为什么std::list <myInnerClass> mylists会给我以下错误:

  - Type 'myInnerClass' was not declared in this scope
  - Type 'myInnerClass' could not be resolved

Where am I wrong? 我哪里错了?

You use myInnerClass before you declare it. 在声明之前,请使用myInnerClass

This code will compile: 该代码将编译:

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

You are using your inner class before declaring it 您在声明之前使用内部类

fix: 固定:

   class myInnerClass
   {
        // Design for this private class
   };

   std::list <myInnerClass> mylists;

first you have to declare inner class and then You can use it 首先,您必须声明内部类,然后可以使用它

Your code 您的密码

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

Correct code: 正确的代码:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM