Я думаю, что пошел бы немного другим путем.
Как это:
test.h
class MyClass
{
public:
MyClass();
std::string name1;
std::string name2;
std::string type1;
std::string type2;
void method1(MyClass &obj1);
void method2(MyClass &obj2);
}
test.cpp
MyClass mainObject; // default c-tor called automatically.
MyClass::MyClass()
{
}
void MyClass::method1(MyClass & obj1)
{
//do stuff
//we populate some of the MyClass variables
mainObject.name1=obj1.name1;
mainObject.type1=obj2.type1;
}
void MyClass::method2(MyClass & obj2)
{
//do stuff
//we populate more of the MyClass variables
mainObject.name2=obj1.name2;
mainObject.type2=obj2.type2;
}
Нет простого способа заполнить только часть вашего объекта, не указав, какие части.
Но, в противном случае, если вы не сделаете mainObject указателем, вам не нужно выделять для него место, это делается автоматически. (Но я должен возражать против использования глобалов, если они ДЕЙСТВИТЕЛЬНО не нужны!)
Эта реализация того, что, я думаю, вы пытаетесь сделать, полностью избавит вас от необходимости использования кучи, без необходимости нового / удаления.