- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
Vector_type(const Vector_type& m1) {
if (this->size != m1.size) {
if (this->size != 0)
destroy_memmory();
this->size = m1.size;
this->M = new m_type[size];
for (int i = 0; i < size; i++)
this->M[i] = m1.M[i];
}
else {
for (int i = 0; i < size; i++)
this->M[i] = m1.M[i];
}
};
Vector_type& operator = (const Vector_type& m1) {
if (this->size != m1.size)
throw "not right =";
this(m1);
return *this;
};
Действительно что могло пойти не так? просто копировать приравнять, копировать, приравнять, копировать...
cat_code 12.10.2018 13:24 # 0
Vector_type(const Vector_type& m1) {
if (this->size != m1.size) {
if (this->size != 0)
destroy_memmory();
this->size = m1.size;
this->M = new m_type[size];
for (int i = 0; i < size; i++)
this->M[i] = m1.M[i];
}
else {
for (int i = 0; i < size; i++)
this->M[i] = m1.M[i];
}
};
Vector_type& operator = (const Vector_type& m1) {
if (this->size != m1.size)
"not right =";
*this = Vector_type (m1);
return *this;
}