Форум программистов, компьютерный форум CyberForum.ru

C++ Как лучше обратиться к классу - C++

Восстановить пароль Регистрация
 
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.12.2011, 14:39     C++ Как лучше обратиться к классу #1
Добрый день. У меня такая ситуация. Есть некий класс A, содеращий массив классов B.
C++
1
2
3
4
5
class A
{
   //какие-то методы и данные
   std::vector<B> _Bs;
};
И нужно, чтобы каждый элемент из этого массива мог проверить существование любого другого элемента из этого массива. Или, например, получить какие-то данные из любого другого элемента. Как это лучше и правильнее оформить?
Неужели придется объявлять класс B как-то так
C++
1
2
3
4
5
class B
{
   //
   A* _parent;
};
Или так
C++
1
2
3
4
5
class B
{
   //
   A& _parent;
};
И в класс A пихать соответствующие методы, которые мне понадобятся...

Может есть какой-то более изящный способ? Или один тот факт, что мне понадобилось подобное, говорит о том, что надо бы переделать проект.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.12.2011, 15:13     C++ Как лучше обратиться к классу #2
I.M., Мм... Скорее последний вариант. Ибо если объект класса должен знать о других объектах этого же класса, это неверно (исключая случаи списков/деревьев).
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.12.2011, 15:34  [ТС]     C++ Как лучше обратиться к классу #3
Хм, а к какой методике тогда лучше прибегнуть?
Чтобы быть более предметным - все это происходит на приложении-сервере. класс А - это менеджер соединений. Класс В - это соединение.
В любой момент времени любое соединение может получить команду "показать другие соединения". Причем показать нужно не все подряд, а только те, которые имеют определенные данные.
И вот в этом-то случае мне и приходится обращаться к другим соединениям, лежащим в массиве соединений.
Как тут лучше быть?
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
16.12.2011, 15:53     C++ Как лучше обратиться к классу #4
добавь у класса В колбэк, который будешь дергать если приходит такое сообщение, а в классе А подпишись на этот колбэк. в итоге получаешь то что нада и класс В ничего незнает о том кто будет исполнять его просьбу.
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
16.12.2011, 15:58     C++ Как лучше обратиться к классу #5
Цитата Сообщение от I.M. Посмотреть сообщение
Как тут лучше быть?
Паттерн Наблюдатель.
Yandex
Объявления
16.12.2011, 15:58     C++ Как лучше обратиться к классу
Ответ Создать тему
Опции темы

Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru