Что-то у меня с наследованием не ладится

Модератор: Fastman

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
de-signer
сержант
Сообщения: 220
Зарегистрирован: 2007-05-11 14:39:01
Откуда: Отсюда :)

Что-то у меня с наследованием не ладится

Непрочитанное сообщение de-signer » 2009-05-18 15:56:31

Тестовая прога:

Код: Выделить всё

#include <stdio.h>

class Child;

class Parent {
public:
	Parent() { printf("Parent constructor\n"); }
	~Parent() { printf("Parent destructor\n"); }
};

class Child : public Parent {
public:
	Child() { printf("Child constructor\n"); }
	~Child() { printf("Child destructor\n"); }
};

int main (void) {
	Parent *parent;
	Child *child;

	parent = new Child;
	printf("\ndoing something\n\n");
	delete parent;

	return 0;
}
Результат:

Код: Выделить всё

Parent constructor
Child constructor

doing something

Parent destructor
Ожидалось:

Код: Выделить всё

Parent constructor
Child constructor

doing something

Child destructor
Parent destructor
Где я торможу?
Если заменить child = new Child - то всё ок.
В общих чертах нужно сделать список из объектов разного типа с обним родителем. Судя по тесту - список-то создастся правильно, а вот при разрушении - начнутся чудеса!
---
"Если я рассуждаю логично, то это значит только то, что я не сумашедший, но вовсе не доказывает, что я прав" (с)И.П.Павлов

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Что-то у меня с наследованием не ладится

Непрочитанное сообщение paradox » 2009-05-18 16:01:52

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

de-signer
сержант
Сообщения: 220
Зарегистрирован: 2007-05-11 14:39:01
Откуда: Отсюда :)

Re: Что-то у меня с наследованием не ладится

Непрочитанное сообщение de-signer » 2009-05-18 16:04:24

paradox - огромное спасибо... совсем забыл.
---
"Если я рассуждаю логично, то это значит только то, что я не сумашедший, но вовсе не доказывает, что я прав" (с)И.П.Павлов