crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [C++] Проблема с пересечением классов, Ссылки друг на друга в членах классов
kerdster
  опции профиля:
сообщение 28.12.2009, 14:56
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 1.2.2009
Пользователь №: 520

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Пример:
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
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Вопрос про 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
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 1.2.2009
Пользователь №: 520

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, помогло!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:24