来自其他班级的二传手
Setter from other class
我有一个名为"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 将被抛出。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 类与私有变量的其他类之间的线程安全性
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 结构和双指针隐藏在其他结构中,多层混淆
- UE4在OnComponentBeginOverlap上铸造其他actor
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- MESI协议和std::atomic-它是否确保所有写入立即对其他线程可见?
- 保留对其他类的成员函数的引用
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 其他类中的枚举类的二传手和获取器
- 来自其他班级的二传手