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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Таблица. просто переделать) http://www.cyberforum.ru/cpp-beginners/thread369513.html
Написати програму, що вводить фактичні дані в таблицю, представленої у Вашому варіанті інди-відуального завдання і виводить на екран таблицю, подібну тієї, котра знаходиться в індивідуальному...
C++ Удалить заданное число... Подскажите пожалуйста код программы, которая удаляет из заданного числа N цифру а. Например, дано 1234 и цифра 3, программа должна вывести на экран 124... http://www.cyberforum.ru/cpp-beginners/thread369512.html
C++ Как умножить матрицы
int A, В; найти С=АВ. я пришел к такой формуле, но не знаю как написать код
Вопрос о копирование url с текущей страницы в файл. C++
Добрый день. Открытие IE с адресом из файла. После чего осуществляется клики и страница переходит по какой-то ссылке. После перехода, адрес новой страницы должен сохранится в файле. ...
C++ Задача на динамическое программирование. http://www.cyberforum.ru/cpp-beginners/thread369443.html
Что не правильно? #include <fstream> #include <iostream> using namespace std; int main() {
C++ Как создать переменную в модуле Хотел создать глобальную переменную в отдельном модуле, например так (файл stdafx.h):int a=10; Всё нормально скомпилировалось, но когда в коде программы (файл NewTest.cpp), где указан исходный... подробнее

Показать сообщение отдельно
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
20.10.2011, 15:43
Виртуальный деструктор нужен исключительно для полиморфного удаления. Если объект создаётся в стеке и передаётся в функции в виде указателя на базовый класс, то можно обойтись и без виртуального деструктора. Однако это в 99% случаев не оправдано и во избежание ошибок нужно всегда делать виртуальный деструктор при наличии виртуальных функций.
Чисто виртуальные функции отличаются от просто виртуальных тем, что могут не иметь реализации. Объекты класса, содержащего чисто виртуальные функции, нельзя создать, они используются только как базовые классы.

Цитата Сообщение от vital792 Посмотреть сообщение
почему он(деструктор) не становится виртуальным по умолчанию при объявлении виртуальной функции
Видимо, в целях экономии ресурсов. С практической точки зрения это было бы удобно.
С другой стороны, есть ряд идиом, в которых деструктор вообще невозможно вызвать явно и создание виртуального деструктора по умолчанию было бы пустой тратой ресурсов.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru