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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Таблица. просто переделать) http://www.cyberforum.ru/cpp-beginners/thread369513.html
Написати програму, що вводить фактичні дані в таблицю, представленої у Вашому варіанті інди-відуального завдання і виводить на екран таблицю, подібну тієї, котра знаходиться в індивідуальному за-вданні (включаючи заголовок і примітки). Відділ кадрів Прізвище Ініціали Рік нар. Зарплата Іванов И.И. 1975 517.50 Петренко П.П. 1956 219.10 Паниковский М.С. ...
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), где указан исходный заголовочный файл, записал строчку cout<<a<<endl;, компилятор выдал: error LNK1169: обнаружен многократно определенный символ - один или более D:\doc\dev\Visual Studio... подробнее

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

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