【问题标题】:In which order should classes be declared in C++? [closed]在 C++ 中应该按什么顺序声明类? [关闭]
【发布时间】:2009-04-16 17:39:32
【问题描述】:

假设我得到了这个 C++ 代码:

class class1{
    class2 *x;
}

class class2{
    class1 *x;
}

编译器会在第 2 行给出错误,因为它找不到 class2,如果我切换了类的顺序,也是一样。我该如何解决?

【问题讨论】:

    标签: c++ class


    【解决方案1】:

    两件事 - 一,你需要在类声明后使用分号:

    class class1{
        class2 *x;
    };
    
    class class2{
        class1 *x;
    };
    

    二,你可以在类的定义前面创建一个声明。这告诉编译器这个类存在,你还没有定义它。在这种情况下,在class1的定义前面放一个class2声明:

    class class2 ;
    
    class class1{
        class2 *x;
    };
    
    class class2{
        class1 *x;
    };
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        先声明class2:

        class class2;
        class class1{
            class2 *x;
        };
        
        class class2{
            class1 *x;
        };
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-10-09
          • 1970-01-01
          • 2010-11-08
          • 2015-05-04
          • 1970-01-01
          • 1970-01-01
          • 2012-07-03
          相关资源
          最近更新 更多