Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Помогите пожалуйста


Автор: FTK 14.6.2005, 00:17
Привет!

Скажите пожалуйста, почему для производных классов пишут так

Код

class A
{
   //Базовый класс
};
class B: virtual public A
{
   //Производный от А и базовый для С
};
class C:public B, virtual public A
{
   // Производный для А и для B
};


Почему нельзя писать просто
Код

class B: public A
{};

???

Вот такой у меня вопрос...
Help me please!

Автор: sergejzr 14.6.2005, 01:02
Модератор: Название темы должно отражать ее суть!
Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27
  1. Почитайте про виртуальное наследование классов
  2. подобные вопросы постят в раздел "помощь"
  3. Если будет ещё спам на ПМ , я поставлю Вам предупреждение!

Автор: FTK 14.6.2005, 01:06
to sergej.z
Да не вопрос, больше не буду...думал можно.
но все равно не понял, зачем писать
class B: virtual public A

Автор: sergejzr 14.6.2005, 01:19

Так как В уже является наследником А, при наследовании одновременно от обеих часть А будет дублирована.
Мы наследуем виртуально, чтобы этого не произошло.

http://ru.wikipedia.org/wiki/C_plus_plus

Прочитайте пожалуйста внимательно всю страницу. Потом задавайте вопросы.

Автор: FTK 14.6.2005, 01:32
Большое Спасибо, именно это мне и надо было.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)