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

тема Наследование правильно ли я вызываю диструктор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дана целочисленная прямоугольная матрица. Определить: http://www.cyberforum.ru/cpp-beginners/thread1022892.html
1. Дана целочисленная прямоугольная матрица. Определить: а)количество столбцов, не содержащих ни одного нулевого элемента; b) характеристикой столбца целочисленной матрицы назовем сумму модулей его положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Ребят помогите пожалуйста составить код с динамическим массивом..Очень...
C++ Хеширование Тип ключа - целое число на интервале . Метод хеширования – свертка с выбором цифр. Метод разрешения коллизий - двойное хеширование. http://www.cyberforum.ru/cpp-beginners/thread1022881.html
Среда разработки под ХР C++
Хочу начать изучать с++,но у меня стоит винда ХР ,последние версии visual studio мне как я понял,не подойдут,что посоветуете для моей древней системы?)
C++ Выделение последнего слова из строки
Написать программу выделения последнего слова из введенной строки и отображение его на экране. Языковая среда Borland C++ 3.1, но не принципиально. Помогите, пожалуйста.
C++ задача с тернарной операцией http://www.cyberforum.ru/cpp-beginners/thread1022860.html
Определить тип заданных выражений и найти их значения. Составить систему тестов и вычислить полученное выражение для нескольких значений n и m, определить при каких n и m выражение не может быть вычислено. При выполнении заданий на сравнения, использовать тернарную операцию. а) k=m+-n; б) m++<--n;
C++ Массивы и указатели. Заменить последний нуль в каждой строке на 5 Задана матрица Q(5,5). Заменить последний нуль в каждой строке на 5. можно более по простому... благодарю,спасибо скажу! подробнее

Показать сообщение отдельно
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
30.11.2013, 03:52  [ТС]     тема Наследование правильно ли я вызываю диструктор
да связан, попробую по цепочке показать и рассказать свою ошибку:

C++
1
m1.sub->worker
C++
1
2
m1(объект класса Manager).sub(указатель на структуру Subordinate)->
worker(указатель на объект класса Employee(у Employee есть диструктор для очистки динамической памяти))
при попытке освободить память в диструкторе Manager этими способами:

C++
1
delete sub->worker;
C++
1
sub->worker->~Employee();
диструктор Employee() не вызывается

Добавлено через 51 минуту
извините ввел вас в заблуждение, я добавил проверку в конструктор и диструктор

C++
1
2
3
4
5
cout<<"new"<<endl;
 
cout<<"delete"<<endl;
 
вот так delete sub->worker; все ок
видимо не стоит доверять клавише f11 в Visual Studio
 
Текущее время: 06:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru