【发布时间】:2009-04-16 17:39:32
【问题描述】:
假设我得到了这个 C++ 代码:
class class1{
class2 *x;
}
class class2{
class1 *x;
}
编译器会在第 2 行给出错误,因为它找不到 class2,如果我切换了类的顺序,也是一样。我该如何解决?
【问题讨论】:
假设我得到了这个 C++ 代码:
class class1{
class2 *x;
}
class class2{
class1 *x;
}
编译器会在第 2 行给出错误,因为它找不到 class2,如果我切换了类的顺序,也是一样。我该如何解决?
【问题讨论】:
两件事 - 一,你需要在类声明后使用分号:
class class1{
class2 *x;
};
class class2{
class1 *x;
};
二,你可以在类的定义前面创建一个声明。这告诉编译器这个类存在,你还没有定义它。在这种情况下,在class1的定义前面放一个class2声明:
class class2 ;
class class1{
class2 *x;
};
class class2{
class1 *x;
};
【讨论】:
【讨论】:
先声明class2:
class class2;
class class1{
class2 *x;
};
class class2{
class1 *x;
};
【讨论】: