У меня есть следующий код
MyObject * func1() {
MyObject * obj = new MyObject();
// lots of stuff here
return obj;
}
MyObject func2() {
MyObject * obj = func1();
// even more stuff here
return *obj;
}
void main() {
MyObject obj = func2()
}
Как я получил от здесь этот код протекает.Будет ли это:
MyObject * func1() {
MyObject * obj = new MyObject();
// lots of stuff here
return obj;
}
MyObject func2() {
MyObject * obj = func1();
// even more stuff here
MyObject obj_r(*obj);
delete obj;
return obj_r;
}
void main() {
MyObject obj = func2()
}
решить проблему?Или есть другие хорошие решения?
в b4: нет, я не могу сделать это ссылкой с самого начала, поскольку func1 () в некоторых случаях возвращает NULL.комментарии, чтобы люди не думали, что я по-королевски глупый