Что произойдет с выделенным вектором на PA2?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Что произойдет с выделенным вектором на PA2?

Сообщение Anonymous »

Я получил этот код, и мой единственный вопрос заключается в следующем: < /p>
Когда компилятор добирается до части программы Delete PA2, что происходит с выделенным вектором, который я сделал с помощью конструктора? Деконструктор вызван, и массив также будет удален из памяти, или именно указатель потеряет ссылку на адрес этого недавно выделенного X, а объект X остается в памяти? < /P>

Код: Выделить всё

#include 

using namespace std;

class X {
public:

float* vector;

X() {
this->vector = new float[10];
for (int i = 0; i < 10; i++) {
vector[i] = 1;
}
}
X(float* v) {
this->vector = new float[3];
for (int i = 0; i < 3; i++) {
this->vector[i] = v[i];
}
delete[]v;
}

~X() {
delete[]this->vector;
}

};

int main() {

X a1;
X a2(new float[3]{ 100, 100.5, 200 });

X* pa2 = new X(new float[3]{ 100, 100.5, 200 });

cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/74233639/what-is-going-to-happen-with-the-allocated-vector-on-pa2[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»