Вызывается деструктор при выходе из метода

Рейтинг: 0Ответов: 0Опубликовано: 27.01.2023

Почему на 29 строке вызывается деструктор Object и данные в массиве теряются? Я совсем ничего не понимаю.

#include <iostream>
#include <conio.h>
 
using namespace std;
 
class MyArray {
protected:
    double* array;
    int size;
public:
    MyArray(double *array, int size);
    ~MyArray();
    void FirstMethod(MyArray Object);
    void SecondMethod(MyArray Object);
};
MyArray::MyArray(double *iarray, int isize) {
    size = isize;
    array = new double[size];
    for (int _ = 0; _ < size; _++) {
        array[_] = iarray[_];
    }
}
MyArray::~MyArray() {
    cout << "delete\n";
    delete[] array;
}
void MyArray::FirstMethod(MyArray Object) {}
void MyArray::SecondMethod(MyArray Object) {
    FirstMethod(Object);
    cout << endl;
}
int main() {
    double firstArray[3] = {31, 32, 33};
    MyArray firstObject(firstArray, 3);
    double secondArray[3] = {7.8, 8.3, 7.6};
    MyArray secondObject(secondArray, 3);
    firstObject.SecondMethod(secondObject);
    getch();
    return 0;
}

введите сюда описание изображения

Ответы

Ответов пока нет.