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

时间:2016-12-13 23:51:10

标签: c++ pointers constructor

Class.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的指针保留为类属性,一切都会好的。

1 个答案:

答案 0 :(得分:1)

  

我认为this-> field_manager = field_manager会保留指针

你不必这样做:

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

而是在构造函数中,只需直接分配指针成员:

field_manager = new Field_manager;