【发布时间】:2021-09-15 00:43:41
【问题描述】:
【问题讨论】:
标签: c++ class pointers syntax compiler-errors
【问题讨论】:
标签: c++ class pointers syntax compiler-errors
当x被定义时,y是未知的,所以x不能被正确编译。解决此问题的一种方法是使用前向声明 - 本质上,您将声明“y 是一个类,我稍后会定义它”:
class y; // Forward declaration of y
class x {
y* ptrY;
};
class y {
x* ptrX;
};
int main() {
}
【讨论】:
x被定义时……”比“当x被声明时……”更准确。您的样本前面可以声明 x(即您所描述的“前向声明)。问题是 y 必须在定义 x 之前声明,并且 x 必须在之前声明y 已定义。