c++ - 类(class)成员指向类(class)成员

标签 c++

我刚开始使用 C++,我在指向类(class)成员的地址时遇到了问题。 当我编译时没有错误,但当我运行它时程序中断。

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);

最佳答案

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

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

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

关于c++ - 类(class)成员指向类(class)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38910120/

相关文章:

c++ - 如何使 slider 控件的 slider 变宽? (使用 MFC)

c++ - 编写可测试代码 - lambda 函数和 unique_ptr 中的 basic_istream 工厂

c++ - 有没有办法声明一个类,然后在 C++ 的函数中初始化它?

c++ - _THROW 未在 GCC 中定义?

c++ - RTTI 支持 C++11(_CPPRTTI 和 __GNUG__)

c++ - C++ 中两个具有友元方法的类

c++ - 在函数参数中通过引用返回变量?

c++ - 接收 HTTP 多部分流时 libCURL 超时

c++ - 如何确保虚方法调用一直传播到基类?

c++ - 可以定义带有 goto 语句和标签的宏吗?