Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ [C++] Проблема с пересечением классов

Автор: kerdster 28.12.2009, 14:56

Доброго времени суток!
Недавно столкнулся с одной проблемой. Есть базовый класс, который содержит среди своих членов вспомогательные классы-воркеры. Но главное - вспомогательные классы должны иметь ссылку на базовый класс, иметь к нему доступ. Компилятор находя первый класс естественно не может найти второй и наоборот.

Пример:

class cb
{
    ca *parent_obj;
// ...
// parent_obj->some_func();
};
class ca
{
    cb cb_obj;
// ...
// cb_obj.parent_obj = this;
};


Проблема ещё в том, что через extern например проблему не решить - объектов ca может быть много, и каждый должен содержать свои экзепмляры воркеров.

Совсем не могу придумать, как можно решить такую проблему разумными методами?

Автор: BRE 28.12.2009, 14:59

Вопрос про forward declaration?

class ca;

class cb
{
    ca *parent_obj;
// ...
// parent_obj->some_func();
};

class ca
{
    cb cb_obj;
// ...
// cb_obj.parent_obj = this;
};


Автор: kerdster 28.12.2009, 15:08

Спасибо, помогло!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)