Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

16.12.2011, 14:39. Просмотров 644. Ответов 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 пихать соответствующие методы, которые мне понадобятся...

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

Как обратиться к классу через значение переменной? - C++
Есть такой вопрос: Как обратиться через значение переменной к объекту Например в php есть такая возможность: class someclass { ...

Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции? - C++
Добрый день!! Дело вот в чём, я хочу создать класс, внутри которого будут созданы объекты других классов (реализованных в некоторой...

Доступ к классу как к контейнеру - C++
Здравствуйте, не подскажите как нужно определить класс-контейнер, что бы можно было получать данные путем такого обращения : Подробнее:...

Как на этапе компиляции определить принадлежность к классу? - C++
Есть шаблонный класс, который в зависимости от переданного класса в параметре подбирает нужный контейнер-обёртку. template&lt;typename...

Как определить, к какому классу относится элемент массива? - C++
Добрый вечер. Задача следующая: существует абстрактный класс, который наследуется в нескольких производных классах. После этого,...

Наследование: как передать массив одного класса другому классу? - C++
Доброе время суток, нужна помощь. Не могу сотворить чудо. Сомневаюсь уже во всём. Как передать массив одного класса другому классу? Дабы...

4
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
16.12.2011, 15:13 #2
I.M., Мм... Скорее последний вариант. Ибо если объект класса должен знать о других объектах этого же класса, это неверно (исключая случаи списков/деревьев).
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.12.2011, 15:34  [ТС] #3
Хм, а к какой методике тогда лучше прибегнуть?
Чтобы быть более предметным - все это происходит на приложении-сервере. класс А - это менеджер соединений. Класс В - это соединение.
В любой момент времени любое соединение может получить команду "показать другие соединения". Причем показать нужно не все подряд, а только те, которые имеют определенные данные.
И вот в этом-то случае мне и приходится обращаться к другим соединениям, лежащим в массиве соединений.
Как тут лучше быть?
0
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
16.12.2011, 15:53 #4
добавь у класса В колбэк, который будешь дергать если приходит такое сообщение, а в классе А подпишись на этот колбэк. в итоге получаешь то что нада и класс В ничего незнает о том кто будет исполнять его просьбу.
0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
16.12.2011, 15:58 #5
Цитата Сообщение от I.M. Посмотреть сообщение
Как тут лучше быть?
Паттерн Наблюдатель.
1
16.12.2011, 15:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 15:58
Привет! Вот еще темы с ответами:

Как сделать так, что бы не писать постоянно принадлежность к классу? - C++
Object.h #pragma once class Object { private: float x,y,z; public: Object(void); ~Object(void);

ООП как можно ограничить доступ к методу производного классу - C++
Покажите пожалуйста небольшой пример как это можно реализовать

Работа с классом (как вызвать или обратится к классу из основной программы?) - C++
помогите пожайлуста, подскажите как вызвать или обратится к классу из основной программы получается код должен создавать и заполнять трех...

Как вернуть статический массив из метода и присвоить его производному классу? - C++
class A { float mas; public: float GetMas(){return mas;} }; class B: public A { B(const A&amp; obj) {


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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