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
的指针保留为类属性,一切都会好的。
答案 0 :(得分:1)
我认为this-> field_manager = field_manager会保留指针
你不必这样做:
Field_manager* field_manager = new Field_manager;
this->field_manager = field_manager;
而是在构造函数中,只需直接分配指针成员:
field_manager = new Field_manager;