应该在C++中声明类的顺序?

4 c++ class

说我得到了这个C++代码:

class class1{
    class2 *x;
}

class class2{
    class1 *x;
}
Run Code Online (Sandbox Code Playgroud)

编译器会在第2行给出错误,因为它无法找到class2,如果我切换了类的顺序,则相同.我该如何解决这个问题?

swo*_*ngu 22

两件事 - 一,你在课堂声明后需要分号:

class class1{
    class2 *x;
};

class class2{
    class1 *x;
};
Run Code Online (Sandbox Code Playgroud)

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

class class2 ;

class class1{
    class2 *x;
};

class class2{
    class1 *x;
};
Run Code Online (Sandbox Code Playgroud)