Главная /
Язык программирования C++ /
Если в конструкторе класса class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произойдет исключительная ситуация, будет ли потеряна память при откате по стеку?
Если в конструкторе класса
class A {
public:
A() { ptr = new char[size];
Init(); }
~A() { if (ptr) delete[] ptr; }
char* ptr; };
произойдет исключительная ситуация, будет ли потеряна память при откате по стеку?
вопрос
Правильный ответ:
да, будет, во всех случаях
будет, только если объект класса создавался с помощью
new
будет, если создавалась автоматическая переменная класса
a
нет, не будет
зависит от конкретного компилятора
Сложность вопроса
62
Сложность курса: Язык программирования C++
54
Оценить вопрос
Комментарии:
Аноним
Спасибо за подсказками по intuit.
31 май 2020
Аноним
Спасибо за сайт
31 авг 2018
Аноним
Я провалил зачёт, почему я не углядел данный сайт с решениями с тестами intuit в начале года
13 июл 2018
Другие ответы на вопросы из темы программирование интуит.
- # Какими по умолчанию объявляются элементы структуры?
- # Отметьте правильные объявления переменных
- # В какой строчке данного кода сработает заданный в нем копирующий конструктор? 1 monstr::monstr(const monstr &М){ 2 if (M.name){ 3 name = new char [strlen(M.name) + 1]; 4 strcpy(name, M.name);} 5 else name = 0; 6 health = M.health; ammo = M.ammo; skin = M.skin; 7 } … 8 monstr Vasia (blue); 9 monstr Super = Vasia; 10 monstr *m = new monstr ("Orc"); 11 monstr Green = *m;
- # Блок try catch
- # Укажите в каком выражении произойдет потеря точности