c++ - 将在构造函数中创建的项目指针分配给类属性

标签 c++ pointers constructor

类.h :

class Main_manager
{
    public:
        Main_manager();
        ~Main_manager();
        Field_manager* field_manag;
    }
}

类构造函数:

Main_manager::Main_manager() {
    Field_manager* field_manager = new Field_manager;
    this->field_manager = field_manager;
}

我认为 this->field_manager=field_manager 会将指向刚刚创建的 field_manager 对象的指针作为 Main_manager 类的一个属性,这样我就可以使用它的方法了。 p>

如果我尝试调用

Main_manager::function()  {
    this->field.manager->function_call();
    //trying to call field.manager's method as i should have its pointer
}

它不起作用。应用程序因无法读取内存而中断。

this>field.manager = field_manager 可能不起作用。构造函数结束后,Main_manager无法读取field_manager的内存。 我认为,如果我将 field_manager 的指针保留为类属性,一切都会好起来的。

最佳答案

I thought that this->field_manager=field_manager would keep the pointer

你不必做这些:

Field_manager* field_manager = new Field_manager;
this->field_manager = field_manager;

而不是在构造函数中,直接分配您的指针成员:

field_manager = new Field_manager;

关于c++ - 将在构造函数中创建的项目指针分配给类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132560/

相关文章:

c++ - C++ 和 eigen3 的编译器错误

c++ - 使用opencv进行视频处理的音频输出

c++ - 如何开启英特尔C++编译器12.1.2的C++0x

c++ - Linux 中的性能数据收集(API)

pointers - Lua Alien - 指针运算和解引用

c++ - 取消引用空指针

c - 函数返回指针与 C 中的函数返回数组

javascript - 变量是如何在 Angular 工厂中初始化的?

c++ - 初始化面向对象的数组C++

c++ - 收到错误 : ISO C++ forbids declaration of with no type