Как работает копирование без настройки конструктора копирования? c++

197
05 декабря 2021, 06:40

В коде что ниже есть такое копирование:

MyClass A (1);
MyClass B (A);

В объекте А у меня есть указатель * data на динамическую область памяти Дальше идет цикл которым мы заполняем наш массив Как дальше происходит копирование прям пошагово?

1)У меня в объекте В вновь появляется указатель * data на динамическую область памяти которая уже у нас существует и в ней уже находится массив? 2)Тогда что происходит с циклом? Он если у нас ссылку на уже инсуючий массив то мы его Перезаписываем ??? Или каким-то образом у нас создается новый массив с такими же значений (но это не возможно потому что у нас не выделено для него памяти)? Как происходит копирование по шагам? Каждая строка берет с объекта А записывает в себя а затем выполняется код якй скопиювався или оно копирует тики тот массив который записался в объекте А !?

#include <iostream>
using namespace std;
class MyClass {
    int * data;
public:
    MyClass(int size) { // Конструктор
        this->data = new int[size];
        for (int i = 0; i < size; i++) {
            data[i] = i;
            cout << data[i];
        }
        cout << endl;
        cout << "Вызвался Конструктор : "<< this << endl;
    }
    ~MyClass() { // Деструктор
        cout  << "Вызвался Деструктор : " << this  << endl;
        /*delete[] data; Здесь ошибка по понятным причанам 
    }*/ 
    }
};
int main()
{
    setlocale(LC_ALL, "ru");
    MyClass A(10);
    MyClass B(A);

}

READ ALSO
Перегрузка функций по имени параметра

Перегрузка функций по имени параметра

Такой вопрос, (я только учусь, так что не бейте) есть функция, которая удаляет элемент из массива:

99
16-тиричное считывание из файла C++

16-тиричное считывание из файла C++

Излазил вдоль и поперек форум(скорее всего чего-то не заметил)

80
Сравнение производительности QQuickItem и QQuickpaintedItem

Сравнение производительности QQuickItem и QQuickpaintedItem

не нашел четкого сравнения двух этих методов рисования виджетаОдин способ это рисовать все в paint()

91
Property does not exist on type &#39;JQuery&lt;HTMLElement&gt;&#39;

Property does not exist on type 'JQuery<HTMLElement>'

Создаю плагин для jQuery:

181