说我得到了这个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)