我有一个类负责创建和初始化许多大对象,因为这些对象都是相同的类型,我不想为所有对象重复相同的初始化代码,我为每个对象调用一个 Init 方法对象,例如:
InitObject(objMember);
void Test::InitObject(LargeObject * obj)
{
obj = new LargeObject;
obj->Load();
obj->SetSomeProperty(false);
}
完成此操作后,我从公共方法调用一组方法来获取指向每个对象的指针:
//public
LargeObject * Test::GetObject()
{
return objMember;
}
问题是对象正在失去作用域,当调用 InitObject 时,对象被正确构造和填充,但是当我调用 GetObject 时,它失去了一切。
我可能遗漏了一些微不足道的东西,但我不明白为什么它会超出范围。