【问题标题】:can we declare nested class object in main function我们可以在主函数中声明嵌套类对象吗
【发布时间】:2018-07-27 18:04:20
【问题描述】:

我对 c++ 中的这个嵌套类很陌生,我正在尝试一个程序
其中明确提到在主函数中声明内部类或嵌套类的对象。在 main 方法中声明嵌套类的对象后,它显示错误“b 未在此范围内声明”。请告诉如何在 main 方法中声明嵌套类对象。

   class a

    {
      public:

       class b

           {
             //something
           };
    };


     int main ()      

     {

      a obj1; //object of outer class

      b obj2;//can we declare the object of nested class b in side main fuction?

      return 0;
     }

【问题讨论】:

  • b 的访问说明符是什么?
  • 首先b默认是私有的。此外,您需要使用a::b 来引用b,因为ba 的成员。
  • b 的访问说明符是公开的。
  • 然后使用a::b obj2;

标签: c++ class


【解决方案1】:

这应该可行:

class a
{
    //something
public:
    class b
    {
        //something
    };
};


int main ()      
{
    a obj1; //object of outer class

    a::b obj2;//declare the object of nested class b in side main function

    return 0;
}

请注意,b 类必须在 a 类中是公共的,才能在 a 类之外使用。 还要注意 obj2 的声明如何指定 b 在类 a 的范围内。 这假定两个类都有一个公共的默认构造函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2016-02-29
    相关资源
    最近更新 更多