Я получаю ошибку запуска при предоставлении деструктора по умолчанию.Однако, если оставить компилятору предоставить деструктор по умолчанию, он работает безопасно.
class foo
{
private:
int m_size;
int* m_array;
public:
foo( int a_size ):m_size( a_size ), m_array( new int(a_size) ){}
~foo() {
delete [] m_array;
}
void setArray();
};
void foo::setArray()
{
for( int i=0; i<m_size; ++i )
m_array[i] = 10*i;
}
int main( int argc, const char* argv[] )
{
class foo obj( 6 );
obj.setArray();
system( "pause" );
return 0;
}
Ошибка времени выполнения:
Это может быть связано с повреждением кучи, что указывает на ошибку в Destructors.exe или любой из загруженных им библиотек DLL.1007 * Это также может быть связано с тем, что пользователь нажимает клавишу F12, когда фокус находится на шаблоне Templates.exe.
В окне вывода может быть больше диагностической информации.