gpt4 book ai didi

c++ - 其他类的二传手

转载 作者:行者123 更新时间:2023-11-28 06:17:29 24 4
gpt4 key购买 nike

我有一个名为“StatusInformation”的类,我想在其中将变量 _status 设置为 true/false,但我只得到“segmentation fault”。我认为 _status 不存在,因为我从另一个类(class)调用它。有人知道如何防止这个错误吗?

状态信息.cpp

void StatusInformation::SetClientConnectStatus(bool status)
{
_status = status;
}

状态信息.h

class StatusInformation
{
private:

bool _status = false;

public:

void SetClientConnectStatus(bool status);
};

来电类.cpp

_statusInformation = new StatusInformation();

_statusInformation->SetClientConnectStatus(true);

调用类.h

StatusInformation *_statusInformation;

最佳答案

编辑:指向您的代码的链接只是给我缺少 ArduinoProtocol 的代码。

对我来说,它编译时带有 2 个关于非静态数据成员初始值设定项的警告,然后运行正常。我真的不相信段错误会来自这段代码。唯一可能导致的是如果

_statusInformation = new StatusInformation();

失败并返回 0,使您的指针成为 NULL 指针。导致:

_statusInformation->SetClientConnectStatus(true);

相当于:

NULL->SetClientConnectStatus(true);

但这只有在您选择使用 no-throw new 时才会发生。你详细说明了哪一个。所以实际上,该代码中唯一可能导致段错误的事情不可能发生。最坏的情况将抛出 std::bad_alloc。

关于c++ - 其他类的二传手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com