Виртуальный деструктор - Большая Энциклопедия Нефти и Газа, статья, страница 1
Лучше помалкивать и казаться дураком, чем открыть рот и окончательно развеять сомнения. Законы Мерфи (еще...)

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

Cтраница 1


Виртуальные деструкторы следует описывать в том случае, если в программе njiaf нируется использование указателя базового класса для получения доступа к объектам подклассов. Существует одно простое правило: если в программе описываются виртуальные функции, то обязательно должны использоваться виртуальные деструкторы.  [1]

Что представляет собой виртуальный деструктор.  [2]

В каких случаях используются виртуальные деструкторы.  [3]

Если у класса имеются виртуальные функции, предусматривайте создание виртуального деструктора. Это приведет к тому, что все деструкторы производных классов станут виртуальными, даже если они имеют имена, отличные от имени деструктора базового класса. В этом случае, если объект в иерархии уничтожен явным использованием операции delete, примененной к указателю базового класса на объект производного класса, то будет вызван деструктор соответствующего класса.  [4]

Если у класса имеются виртуальные функции, предусматривайте создание виртуального деструктора, даже если он не требуется этому классу. Классы, производные от данного класса, могут содержать деструкторы, которые должны вызываться соответствующим образом.  [5]

Если в классе используются виртуальные методы, то следует объявить также и виртуальный деструктор. Он необходим для того, чтобы быть уверенным в удалении части объекта, относящейся к производному классу, если удаление объекта осуществлялось с помощью указателя базового класса.  [6]

Объявляя виртуальный метод в программе, заплатить придется не только за v-таблицу ( хотя добавление последующих записей потребует не так уж много места), но и за создание виртуального деструктора. Поэтому следует подумать, имеет ли смысл преобразовывать методы программы в виртуальные, а если да, то какие именно.  [7]

Используйте виртуальные методы только в том случае, если программа содержит базовый и производные классы. Используйте виртуальный деструктор, если в программе были созданы виртуальные методы.  [8]

Показанный выше пример программы был значительно сокращен, чтобы выделить именно те моменты, которые сейчас рассматриваются. Так, для простоты программы из нее были удалены конструктор и виртуальные деструкторы.  [9]

Виртуальные деструкторы следует описывать в том случае, если в программе njiaf нируется использование указателя базового класса для получения доступа к объектам подклассов. Существует одно простое правило: если в программе описываются виртуальные функции, то обязательно должны использоваться виртуальные деструкторы.  [10]



Страницы:      1