Russian Qt Forum

Программирование => С/C++ => Тема начата: UVV от Октябрь 12, 2010, 08:11



Название: Общий базовый класс
Отправлено: UVV от Октябрь 12, 2010, 08:11
Привет, есть такая ситуация.
Код:
class A {};
class B : public A {};
class C : public A {};

В какой-то момент, нужно синхронизировать данные между объектами
класса B и С (т.е. те общие данные, что они имеют от класса A).

Что посоветуете в данном случае?
Мне пока пришло в голову такое решение:
Код:
class B : public A
{
   C* c;
};

class C : public A
{
   B* b;
};
Явный недостаток в этом случае, что присутствуют 2 экземляра класса А.


Название: Re: Общий базовый класс
Отправлено: BRE от Октябрь 12, 2010, 08:39
В какой-то момент, нужно синхронизировать данные между объектами
класса B и С (т.е. те общие данные, что они имеют от класса A).
Как ты себе представляешь "те общие данные"?


Название: Re: Общий базовый класс
Отправлено: shirushizo от Октябрь 12, 2010, 08:44
А зачем запихивать одно наследника в другого, если не секрет?
Тогда уже создавай указатель на класс А, а он может ссылаться как на В, так и на С.


Название: Re: Общий базовый класс
Отправлено: UVV от Октябрь 12, 2010, 09:26
Всем спасибо. Решение нашёл здесь http://www.linux.org.ru/forum/development/5432908