问题遇到的现象和发生背景
如果类的析构函数不能delete类的成员函数中new的堆内存,那return后怎么delete内存啊?
问题相关代码,请勿粘贴截图
template<typename T>
class Matrix
{
int rol;
int col;
T* element;
int size;
public:
Matrix(int a=0, int b=0, T* c=NULL, int d=0)
{
rol = a;
col = b;
element = c;
size = d;
}
Matrix operator +(const Matrix<T>& a)const
{
T* temp=new T[this->size];
for (int i = 0; i < size; i++)
{
temp[i] = this->element[i] + a.element[i];
}
return Matrix(this->col, this->rol, temp, this->size);
}
};
运行结果及报错内容
成员函数没有delete内存,但运行成功,也没报错