#include <iostream>
class Y;
class X {
public:
Y* y;
int data = 1;
};
class Y {
public:
X x;
int data = 0;
};
int main() {
X* x = new X;
Y* y = new Y;
// std::cout << y->x.data << std::endl;
std::cout << x->y->data << std::endl;
return 0;
}
关于类的相互引用,上面的代码为何会segment fault呢?而y->x.data
却可以正常运行。
求路过大神指教。
因为一个是指针,一个是对象。Y里的x会自动调用默认构造器构造。X里的y没有被初始化,是野值。