Результаты поиска по запросу "virtual-destructor"

16 ответов

 может быть публично удален. Но я полагаю, что не повредит привычке добавлять виртуальные dtors на случай, если они понадобятся позже.

я есть четкое понимание большинства ОО-теорий, но меня смущает одна вещь - виртуальные деструкторы. Я думал, что деструктора всегда называют независимо от того, что и для каждого объекта в цепочке. Когда вы собираетесь сделать их виртуальными и ...

3 ответа

@Gianni nop означает бездействие. Перемещение не всегда отличается или дешевле, чем копировать. Перемещение - это всего лишь оптимизация или способ передачи права собственности на объекты, которые нельзя копировать.

равильно объявлять методы создания экземпляров при определении класса интерфейса? Абстрактные базовые классы должны иметь виртуальный деструктор по очевидным причинам. Однако затем выдается следующее предупреждение компиляции: «InterfaceClass ...

3 ответа

размещение нового и явного вызова освобождения просто вызовет конструктор и деструктор в ссылочных областях, так что выделение памяти эффективно исключается из жизненного цикла объекта

т ответРайан напрямую вызывает виртуальный деструктор. Я протестировал код в VS2010, и он правильно вызывает все деструкторы (проверено с помощью операторов логирования). Это действительно так? В чем проблемы, недостатки или даже плюсы такого ...

ТОП публикаций

3 ответа

@ Dacode: я не следил за фактическими встречами и так далее, поэтому я не знаю. Из четырех «смущений» только последнее действительно изменилось. Я не удивлюсь, если кто-то представит пропросаль для такого изменения, но я не могу сказать, почему он был отклонен.

у C ++ не делает деструкторы виртуальными по умолчаниюдля классов, которые имеют хотя бы одну другую виртуальную функцию? В этом случае добавление виртуального деструктора мне ничего не стоит, а отсутствие его - это почти (почти?) Ошибка. Будет ...

3 ответа

Возможна утечка памяти без виртуального деструктора?

#include <iostream> using namespace std; class base { int a; public: base() {a =0;} }; class derv :public base { int b; public: derv() {b =1;} }; int main() { base *pb = new derv(); delete pb; }У меня нет виртуального деструктора в классе derv, ...

4 ответа

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

Если мы определяем абстрактный класс, который имеет чистый виртуальный деструктор, почему мы должны дать определение деструктора в абстрактном классе?

3 ответа

Нет виртуальных конструкторов, но виртуальный деструктор

Если у нас нет виртуальных конструкторов, то почему у нас есть виртуальные деструкторы? Могут ли конструкторы быть виртуальными?