首页 > C++类的相互引用问题

C++类的相互引用问题

#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没有被初始化,是野值。

【热门文章】
【热门文章】