来自其他班级的二传手

Setter from other class

本文关键字:二传手 其他      更新时间:2023-10-16

我有一个名为"StatusInformation"的类,我想在其中将变量_status设置为true/false,但我只得到"分段错误"。我认为,_status不存在,因为我从另一个类中称之为它。有人知道如何防止此错误吗?

状态信息.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);

CallerClass.h

StatusInformation *_statusInformation;

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

对我来说,这编译了 2 个关于非静态数据成员初始值设定项的警告,然后运行良好。我真的不相信分段错误可能来自此代码。唯一可能导致这种情况的是,如果

_statusInformation = new StatusInformation();

失败并返回 0,使指针变为 NULL 指针。造成:

_statusInformation->SetClientConnectStatus(true);

等效于 :

NULL->SetClientConnectStatus(true);

但这只有在你选择使用不抛出的新东西时才会发生。你很具体。所以实际上,代码中唯一可能让你分段错误的事情,不可能发生。最坏的情况是 std::bad_alloc 将被抛出。

相关文章: