我在想办法返回一个附加了动态内存的对象(在函数中本地声明)时遇到了麻烦。问题是析构函数,它在对象超出范围时运行并删除动态内存,即当我返回它并想要使用已删除的内存中的数据时!我正在为重载的加法运算符执行此操作。
我正在尝试做类似的事情:
MyObj operator+( const MyObj& x, const MyObj& y )
{
MyObj z;
// code to add x and y and store in dynamic memory of z
return z;
}
我的析构函数很简单:
MyObj::~MyObj()
{ delete [] ptr; }
我们欢迎所有的建议!