班级成员指向班级成员

时间:2016-08-12 04:46:12

标签: c++

我刚开始使用c ++,而且我有一个问题,指向一个类的memeber地址。 当我编译时没有错误,但是当我运行它时程序会中断。

class vise
{
public:
    int h1=10;
    int n1=12;
    int *x;
    int set();
};

class vodv 
{
public:
    vise *v;
    int g;
};

int vise::set()
{
    h1=5;
    return 0;
}

此行打破了程序

vodv f;
vise v1;
(f.v)->x=&(v1.n1);

1 个答案:

答案 0 :(得分:2)

您没有为v分配内存,所以当您尝试访问它时:

(f.v)->x = &(v1.n1);
     ^^^
   Dereferences 'v'

v可以指向任何内存地址。取消引用它是未定义的行为,有时(它毕竟是未定义的)会导致程序崩溃。