Когда компилятор добирается до части программы 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]