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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
#1

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

16.12.2011, 14:39. Просмотров 633. Ответов 4
Метки нет (Все метки)

Добрый день. У меня такая ситуация. Есть некий класс 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 пихать соответствующие методы, которые мне понадобятся...

Может есть какой-то более изящный способ? Или один тот факт, что мне понадобилось подобное, говорит о том, что надо бы переделать проект.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 14:39     C++ Как лучше обратиться к классу
Посмотрите здесь:
Как обратиться к классу через значение переменной? C++
C++ Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции?
Доступ к классу как к контейнеру C++
Как на этапе компиляции определить принадлежность к классу? C++
C++ Как определить, к какому классу относится элемент массива?
Как сделать так, что бы не писать постоянно принадлежность к классу? C++
C++ Наследование: как передать массив одного класса другому классу?
ООП как можно ограничить доступ к методу производного классу C++
Работа с классом (как вызвать или обратится к классу из основной программы?) C++
Как вернуть статический массив из метода и присвоить его производному классу? C++
C++ Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор.
C++ Как обратиться к массиву

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.12.2011, 15:13     C++ Как лучше обратиться к классу #2
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
Эксперт С++
3042 / 1687 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
16.12.2011, 15:58     C++ Как лучше обратиться к классу #5
Цитата Сообщение от I.M. Посмотреть сообщение
Как тут лучше быть?
Паттерн Наблюдатель.
Yandex
Объявления
16.12.2011, 15:58     C++ Как лучше обратиться к классу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru