Проблема с операторами арифметики в классах
Пишу операторы арифметических выражений для массивов в классах. Цель: создать два экземпляра класса, ввести их размеры (они одинаковы), заполнить их случайными элементами, а третий создать и заполнить суммой двух первых. Проблема: при запуске кода второй массив заполняется мусором.
ДОП: Какие вы можете сделать замечания по поводу написания кода? Как можно улучшить написание? (Занимаюсь недолго, знаю очень мало, можете дать онлайн-ресурсы с информацией)
Спасибо
class MATRIX{
private:
int* array;
int size;
public:
MATRIX(){
cout << "Constructor: " << this << endl;
this->array = new int[size];
for (int i = 0; i < this->size; i++){
this->array[i] = rand() % 10;
}
}
void set(int Valuesize){
size = Valuesize;
} // Установка размера массива
MATRIX operator + (const MATRIX& other){
MATRIX temp;
for (int i = 0; i < this->size; i ++){
temp.array[i] = this->array[i] + other.array[i];
}
return temp;
}
void print(){
for (int i = 0; i < this->size; i++){
cout << this->array[i] << " ";
}
cout << endl;
} // Вывод массива
~MATRIX(){
cout << "Destructor: " << this << endl;
delete[] array;
}
};
int main(){
int size;
cout << "Введите размер матрицы: ";
cin >> size;
MATRIX first;
first.set(size);
MATRIX second;
second.set(size);
MATRIX third = first + second;
third.set(size);
first.print();
cout << "-------------------------------" << endl;
second.print();
cout << "-------------------------------" << endl;
third.print();
return 0;
}