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

Наследование. Виртуальные методы/деструкторы. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error C2143: синтаксическая ошибка: отсутствие "]" перед ";" http://www.cyberforum.ru/cpp-beginners/thread560822.html
#include <iostream> #include <conio.h> #include <cmath> using namespace std; // Программа int main () { setlocale (LC_ALL, "Russian" ); int m, p, r, tab , i, j; cout << "Введите любое десятичное число =";
C++ Есть ли утечка памяти? Пример добавления элемента в список. // Включение в список нового компонента void comp_in(dyn_list &l, char* n, char* v) { comp* c = new comp(); strcpy_s(c->name, 20, n); strcpy_s(c->value, 10, v); c->next = NULL; if (chk_empty(l)) l.head = c; http://www.cyberforum.ru/cpp-beginners/thread560813.html
C++ Задача на Структуры
Записная книжка состоит из страниц. В книжке сохраняются телефонные номера знакомых. На каждой странице указаны фамилии, начинающиеся с одной и той же буквы – индекса этой страницы. Данные о знакомом: {Фамилия, Телефон} представить как структуру. Записную книжку представить в виде матрицы структур, где строка матрицы соответствует определенной странице записной книжки. Написать и протестировать...
Определить, на каком расстоянии от начала автотрассы начинается и заканчивается первый самый длинный участок с непрерывным подъемом C++
Всем доброго времени суток! Помогите пожалуйста решить задачу: Известна высота над уровнем моря каждого километра 100-километровой автотрассы. Определить, на каком расстоянии от начала автотрассы начинается и заканчивается первый самый длинный участок с непрерывным подъемом. На языке С. Спасибо!
C++ Максимальное количество одинаковых элементов массива http://www.cyberforum.ru/cpp-beginners/thread560723.html
Всем доброго времени суток! Помогите пожалуйста решить задачу: Дан целочисленные массив размера N. Определить максимальное количество его одинаковых элементов. На языке С. Спасибо!
C++ Класс complex для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Привести фрагмент программы (int main), использующий объекты разработанного класса: Объект «комплексные числа». Операции определяются по общепринятым формулам. Конструктор должен позволить создавать объекты без и с начальной инициализацией. Реализовать метод MOD и ConJ - нахождение модуля... подробнее

Показать сообщение отдельно
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 269
28.04.2012, 19:57  [ТС]     Наследование. Виртуальные методы/деструкторы.
Ваш пример мне понятен
не понял фразу "При уничтожении автоматических объектов всё обрабатывается правильно в любом случае". может быть в ней и кроется ответ на мой вопрос)) но, на всякий случай, попробую его по-лучше сформулировать:
в Cell есть указатель на Ocean. Предположим, что мне (неважно зачем - просто пример) в деструкторе Cell нужно сделать
C++ (Qt)
1
delete ocean;
Далее я я рассуждаю так:
1.) если деструктор Cell был НЕвиртуальным, то деструкторы производных классов (Obstacle и Prey) вызовут деструктор базового класса (то есть Cell) и пресловутый океан будет удалён
2.) если деструктор Cell был виртуальным, то деструкторы производных классов (Obstacle и Prey) заменят деструктор класса Cell, то есть океан окажется неудалённым - значит эту строку
C++ (Qt)
1
delete ocean;
придётся повторно написать в деструкторах производных классах.
Если следовать этой логике, то
3.) деструктор Predator - потомка Prey заменит собой деструктор Prey - то есть в Predator опять же нужно будет удалять океан...

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