У меня есть следующий код
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.
upd: добавлены некоторые комментарии, чтобы люди не делали этого. Я думаю, что я по-королевски глуп