68955

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

Лекция

Информатика, кибернетика и программирование

Явний опис деструкторів у програмах потрібний лише тоді, коли обєкт створюється у динамічній памяті. При використанні віртуальних деструкторів досить очевидними є переваги поліморфізму. Зазвичай, вони застосовуються тоді, коли при знищенні обєктів необхідно видалити обєкти похідного класу...

Украинкский

2014-09-28

26.5 KB

0 чел.

Лекція № 17

Тема: Віртуальні деструктори

Явний опис деструкторів у програмах потрібний лише тоді, коли об'єкт створюється у динамічній пам'яті. При використанні віртуальних деструкторів досить очевидними є переваги поліморфізму. Зазвичай, вони застосовуються тоді, коли при знищенні об'єктів необхідно видалити об'єкти похідного класу, на які посилаються покажчики на базовий клас. Саме це демонструє нижченаведений приклад.

#include<string.h> class TBase

{

private:

char *spl;

public:

TBase(const char *s)

{

spl = strdup(s) ;

}

virtual ~TBase()

{

delete spl;

}

};

class TDerived: public TBase

{

private: char *sp2; public: TDerived(const char*sl, const char *s2):TBase (s1)

{

sp2 = strdup(s2);

}

virtual -TDerived()

{

delete sp2;

} };

У головній програмі організуємо демонстрацію створення та знищення об'єкту похідного класу TDerived:


void main
() {

TBase *pbase;

pbase=new TDerived("String 1","String 2"); delete pbase;

}

Проведемо деяке додаткове спостереження даного коду та зробимо деструктор на деякий час звичайним, невіртуальним. Тоді останнім оператором головної програми при видаленні об'єкта через покажчик базового класу було б викликано лише деструктор базового класу, залишивши у динамічній пам'яті незвільнений рядок у вигляді sp2. Ця проблема розв'язується оголошенням віртуальних деструкторів: гарантовано, що у разі, коли знищується об'єкт класу TDerived, адресований покажчиком на TBase, буде знищено обидва рядки.

Якщо при оголошенні деструктору базового класу його було оголошено, як віртуальний, усі деструктори похідних класів також будуть віртуальними. На відміну від динамічних об'єктів в ієрархії, не має сенсу турбуватися про віртуальність деструкторів, що створюються у статичній пам'яті. Як правило, у таких випадках буде організовано правильний порядок виклику деструкторів у ієрархії, згенерованих компілятором по замовчуванню


 

А также другие работы, которые могут Вас заинтересовать

33289. Налоговое бремя экономики и бремя государства (их сущность и взаимосвязи) 30 KB
  субъект налога и носитель налога могут не совпадать. Налогоплательщик может стремиться к тому чтобы переложить налог либо “вперед†на покупателей своих товаров повышая цену товаров в соответствии с размером налога либо “назад†на людей у которых он сам покупает товары уплачивая им меньше чем если бы налога не существовало. Сфера применения личного подоходного налога как правило фокусируется на отдельных лицах чьи доходы облагаются налогом. В целом однако большинство экспертов сходятся во мнении что именно те лица...
33290. Налоговая политика: сущность и инструменты ее реализации 24.5 KB
  Налоговая политика: сущность и инструменты ее реализации. Налоговая политика – комплекс мероприятий государства в области налогов осуществляемых органами власти и управления в соответствии с нормами налогового права. Налоговая политика является частью финансовой политики. В условиях высокоразвитых рыночных отношений налоговая политика используется государством для перераспределения НД в целях изменения структуры производства территориальноэкономического развития повышения уровня доходности отдельных групп населения.
33291. Налоговая система и этапы её становления в РФ 23.5 KB
  Налоговая система и этапы её становления в РФ Нал. право – комплекс налоговых знов кот. и нал. органов права и обязти субъектов налх отношений т.
33292. Налоги, принятые и действовавшие в 90-е годы (до НК РФ) вопреки закону «Об основах налоговой системы в РФ», и их последствия 22 KB
  Налоги принятые и действовавшие в 90е годы до НК РФ вопреки закону Об основах налоговой системы в РФ и их последствия В декабре 1993 года президентским указом было отменено положение о норме в соответствии с которой региональные и местные органы власти в праве вводить или не вводить лишь те налоги которые оговорены законом “Об основах налоговой системы в Российской федерацииâ€. В результате как грибы после дождя стали появляться такие экзотические налоги как налог на падение объемов производства или на инвестиции за...
33293. Система налогов и сборов в РФ и их классификация 23 KB
  В РФ устанавливаются следующие виды налогов и сборов: федеральные налоги и сборы налоги и сборы субъектов РФ и местные налоги и сборы. Федеральными признаются налоги и сборы устанавливаемые НК РФ и обязательные к уплате на всей территории РФ. Региональными признаются налоги и сборы устанавливаемые НК РФ и законами субъектов РФ вводимые в действие в соответствии с НК РФ законами субъектов РФ и обязательные к уплате на территориях соответствующих субъектов РФ. Местными признаются налоги и сборы устанавливаемые НК РФ и нормативными...
33294. Налоговая реформа и ее влияние на налоговую нагрузку организации 25 KB
  Налоговая реформа и ее влияние на налоговую нагрузку организации Принятый в России новый пакет законов о налогах впитал в себя мировой опыт что важно для выхода страны из экономической изоляции отвечает в основном требованиям переходного к рыночным отношениям периода имеет определенную социальную направленность. Важно сопоставить новую налоговую систему России с налогами действующими в разных зарубежных странах ибо переход к рыночной экономике немыслим без использования опыта западных государств наряду со всем лучшим что имелось в нашей...
33295. Методы расчета уровня налоговой нагрузки организации 25 KB
  Методы расчета уровня налоговой нагрузки организации. Налоговая нагрузка представляет собой обобщенную характеристику налоговой системы страны указывающую: вопервых на действие которое налоги оказывают на положение налогоплательщиков или на народное хозяйство в целом; вовторых количественную оценку этого действия. Как правило характеристика налоговой нагрузки определяющая действие налогов оказывающее на положение налогоплательщиков или на народное хозяйство в целом обусловлена наличием негативного отношения к налоговой...
33296. Определение налога, сбора. Общие и отличительные признаки налога и сбора 22 KB
  Определение налога сбора. Общие и отличительные признаки налога и сбора Налоговая система РФ включает совокупность налогов и сборов взимаемых в установленном порядке. Данное определение позволяет отличить налог от сбора. При уплате сборов всегда присутствует специальная цель и интересы сторон следовательно сбор не может быть произвольным размер сбора должен быть обоснован и сопоставим с целями на которые он взимается.
33297. Элементы налогообложения и их характеристика 25.5 KB
  При построении налоговых отношений важное значение имеют элементы налога. Общепризнанные элементы налога: 1. Субъект налога – налогоплательщиком и плательщиком сбора признаются юридические и физические лица на которые в соответствии с НК возложена обязанность уплачивать налоги и сборы. Согласно НК кроме налогоплательщиков действуют: налоговые агенты на которых возложены обязанности по исчислению удержанию и перечислению соответствующих налогов в бюджет; законный представитель налогоплательщика организации или физического лица –...