у меня есть этот класс
class Matrix
{
int size;
std::unique_ptr<std::unique_ptr<int[]>[]> val;
public:
Matrix(int size1)
{
size=size1;
val=std::make_unique< std::unique_ptr<int[]>[] >(size);
...
}
... конструктор перемещения, оператор присваивания перемещения
Matrix& operator+(Matrix &m)
{
Matrix sumMatrix(size);
for ( int i = 0; i < size; ++i)
{
for (int j = 0; j < size; ++j){
sumMatrix.val[i][j]=this->val[i][j]+m.val[i][j];
}
}
return sumMatrix;
}
и основное:
...
Matrix e=b+c;
std::cout<<"e="<<std::endl;
e.print();
и у меня есть эта ошибка:
предупреждение: возвращена ссылка на локальную переменную 'sumMatrix' [-Wreturn-local-addr] Matrix sumMatrix(size);
Может ли кто-нибудь помочь мне с этим ??
Matrix& operator+(Matrix &m);
должно бытьMatrix operator+(const Matrix &m) const;
Кроме того, вам может понадобиться проверить размерm
. Рискованно просто предполагать, что они одного размера. Вы можете сделать размер параметром шаблона. - person Ted Lyngmo   schedule 11.05.2020