
Сообщение от
DU
проблема не в этом, а в том что у вас нет оператора =.
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| matrix o3;
o3 =o1+o2; // тут работает оператор = а не конструктор копирования. а дефолтный будет приводить к проблемам.
// вот это добавте к себе в код:
matrix& operator = (const matrix &o)
{
matrix m(o);
int** tmpMass = mass;
int tmpN = n;
mass = m.mass;
n = m.n;
m.mass = tmpMass;
m.n = tmpN;
return *this;
}
//и привильная сигнатура operator + должна быть такой:
matrix operator + (const matrix & o) const;
matrix & operator+(matrix & o); // это для оператора +=
и еще в деструкторе у вас пропущено удаление
delete [] mass; |
|
Ну я же говорю, что только начал перегрузку, а про перегруженный оператор присвоения еще не читал, точнее было написано, что будет рассмотрен далее, но все равно спасибо.
p.s. А вот с деструктором действительно пропустил, сам себе удивлюсь