Указывает ли код ниже утечки памяти?Выбрасывание исключения в конструкторе класса C++
Деструктор класса Test не вызывается (на экране не появляется вывод), и я предполагаю, что вся память, выделенная массиву Int, не возвращается системе? Правильно ли мое предположение? Как мне требовать вернуть ресурсы, выделенные в конструкторе, если возникает исключение?
#include <iostream>
using namespace std;
class Int{
public:
int v;
Int(){
cout<<"inside Int constructor ..."<<endl;
}
~Int(){
cout<<"inside Int destructor ..."<<endl;
}
};
class Test{
public:
Int* a;
Test(){
a=new Int[10];
cout<<"inside Test constructor ..."<<endl;
throw(0);
}
~Test(){
delete [] a;
cout<<"inside Test destructor ..."<<endl;
}
};
int main(){
try{
Test T;
}
catch (int e){
cout<<"Error!!!"<<endl;
}
return 0;
}