不理解如何初始化源/接收类逻辑的指针
Not understanding how to initialize pointers for source/sink class logic
将源输出更改为指针后,我开始在调用GetOutput()
函数时发生段错误。我很确定我没有正确初始化output
。将其初始化为NULL
,因为我目前正在做的是行不通的,我相当肯定它也没有意义,考虑到这意味着output
永远不会持有任何东西。我想也有可能我只是犯了一个语法错误。所以我很感激任何关于我应该如何初始化我的output
的想法。
// source.c
#include <iostream>
#include <source.h>
#include <stdlib.h>
Source::Source()
{
Image * output = NULL;
output->SetSource(this);
}
Source::~Source() {}
Image * Source::GetOutput() const
{
std::cerr << "This function never executes due to segfault." << std::endl;
output->ResetSize(output->GetWidth(), output->GetHeight());
return output;
}
void Source::Update()
{
Execute();
}
// source.h
#include <image.h>
#ifndef SOURCE_H
#define SOURCE_H
class Image;
class Source
{
public:
Source();
virtual ~Source();
Image * GetOutput(void) const;
virtual void Execute()=0;
virtual void Update();
protected:
Image* output;
};
#endif
下面的代码首先将指针设置为NULL
,然后尝试使用它,因此当然会出现错误。
Image * output = NULL;
output->SetSource(this);
相反,您可以使用new
关键字来初始化它,如下所示:Image *output = new Image;
output->SetSource(this);
相关文章:
- 如何使用数据对象上的常量指针初始化类
- 使用指针初始化 char 数组或字符串 C++
- 使用无效指针初始化指针声明符的行为是否未定义?
- 指针:初始化与声明
- 启动线程会导致指针初始化时出现分段错误
- 使用函数声明进行函数指针初始化 - 是否可能
- 类初始化中的指针初始化
- 结构数组的指针初始化
- 如何从其抽象母类上的指针初始化子类?
- C 用结构指针初始化结构
- 如何用无效指针初始化unique_ptr的向量
- PCL中的这些增强指针初始化是不同的
- 通过指针初始化结构
- 从函数指针初始化成员函数
- 使用作用域内生成的指针初始化静态成员
- 使用"this"指针初始化 std::array
- C++缺乏指针初始化和使用逻辑
- constexpr 使用指针初始化
- C 指针初始化的不良初始化可能是什么后果
- 指针初始化无效?如果不是,那是什么