Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

виртуальный деструтор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать массив со случайными числами по убыванию http://www.cyberforum.ru/cpp-beginners/thread1060646.html
отсортировать массив со случайными числами по убыванию и указать на последний элемент
C++ Шаблон с конструктором копирования Найдите периметр и площадь выпуклого многоугольника. Распределение памяти для хранения массивов должно осуществляться динамически(в конструкторе), а освобождение-в деструкторе. http://www.cyberforum.ru/cpp-beginners/thread1060642.html
C++ STL, vector. iterator. как работает?
void invertArrange() //метод инвертирования порядка слов { istringstream ist(operLine); //Превращаем строку в поток vector<string>...
Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне C++
Здравствуйте.Делается проект Win32 на C++ с WinAPI.Подскажите пожалуйста (желательно с примерами) как лучше отлавливать нажатия на клавиатуре при активном окне. Например запущена моя программа и мне...
C++ Перегрузка оператора, для множественного использования http://www.cyberforum.ru/cpp-beginners/thread1060609.html
Всем доброе утро и с наступающим! Делаю свой класс строки, и мне захотелось сделать так чтобы ввод в эту строку был подобно выводу cout например: int a; char b; char c; OPstring str;...
C++ Не получается написать "Hello world!" Здравствуйте. Я решил попробовать научиться программировать по книге Бьерна Страуструпа "Программирование. Принципы и практика использования С++" и первое же задание вызвало у меня затруднения. Вот... подробнее

Показать сообщение отдельно
noname_club
103 / 93 / 10
Регистрация: 01.05.2013
Сообщений: 598
30.12.2013, 12:22  [ТС]
int main(int argc, const char * argv[])
{
base_class1 *c2 = new base_class2();
delete c2;
return 0;
}
ответ консоли:

в случае с виртуальным деструктором

~base_class2 free hello world2
~base_class1 free hello world
Program ended with exit code: 0
в случае невиртуального деструктора

~base_class1 free hello world
Program ended with exit code: 0
то есть экземпляр объекта base_class2 был удален не полностью и вызвал утечку памяти, в случае невиртуального деструктора

это означает, что деструктор нужно всегда делать виртуальным, иначе велика вероятность вот такого неполного удаления
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru