powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите по наследованию...
4 сообщений из 4, страница 1 из 1
Подскажите по наследованию...
    #33024583
Фотография Serega128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. имеем 2 класса: класс А и класс Б(унаследован от А). В кл. А деструктор виртуальный. В классе Б деструктор переопределён. При вызове деструктора для экземпляра класса Б, вызовется ли деструктор класса А? Если да, то в какой последовательности? Спасибо.
...
Рейтинг: 0 / 0
Подскажите по наследованию...
    #33024763
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serega128Т.е. имеем 2 класса: класс А и класс Б(унаследован от А). В кл. А деструктор виртуальный. В классе Б деструктор переопределён. При вызове деструктора для экземпляра класса Б, вызовется ли деструктор класса А? Если да, то в какой последовательности? Спасибо.

При удалении объекта производного класса, на который ссылается указатель базового класса если деструктор объявлен как виртуальный, то будет вызван деструктор соответствующего производного класса. Затем деструктор производного класса вызовет деструктор базового класса и объект будет правильно удален.
...
Рейтинг: 0 / 0
Подскажите по наследованию...
    #33024789
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все очень лкгко проверить с помощью очень простой программки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
class Base
{
public:
virtual ~Base(){printf("base destructor");}
};

class Derived:public Base
{
public:
~Derived(){printf("derived destructor");}
};

int main()
{
Base *pBase=new Derived;
delete pBase;
return  0 ;
}
_______________________________________________________________
@Мы медленно запрягаем, быстро ездим, и сильно тормозим.@
...
Рейтинг: 0 / 0
Подскажите по наследованию...
    #33024938
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serega128Т.е. имеем 2 класса: класс А и класс Б(унаследован от А). В кл. А деструктор виртуальный. В классе Б деструктор переопределён.


Деструктор всегда переопределен, в любом классе. Либо явно, либо неявно.

Serega128
При вызове деструктора для экземпляра класса Б, вызовется ли деструктор класса А? Если да, то в какой последовательности? Спасибо.


Да, после выхода из деструктора наследника.

Конструируются объекты (вызываются конструкторы) всегда в таком порядке :
предки класса

члены класса

сам класс (его конструктор)
Уничтожаются объекты в обратном порядке : сначала сам деструктор данного класса, затем деструкторы членов и затем деструкторы базовых классов.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите по наследованию...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]