Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Указатели на методы класса |
Автор: cymtu 24.4.2009, 09:16 |
Есть класс В, который реализует обычный список элементами которого являються объекта класса А все переменные класса А закрыты и должны быть закрыты(private), открыты только методы. Среди переменных класса В есть указатель *pА на класс А, которые посредством методов Beg() End() Next() Prev() перемещается по списку. А с помощью методов типа Get_..../Set_.... осуществляется доступ к переменным того элемента, на который указывает *рА. В свою очередь класс В также является элементом для класс С, который реализует список из этих элементов. Все переменные класса С закрыты и должны быть закрыты(private), открыты только методы. Среди переменных класса C есть указатель *pВ на класс В, которые посредством методов Beg() End() Next() Prev() перемещается по списку. А с помощью методов типа Get_..../Set_.... осуществляется доступ к переменным того элемента, на который указывает *рВ. Вопрос: Как реализовать механизм доступа разработчику, который будет использовать класс C, к методам класса B]B[/B] элемента на который указывает указатель *рВ, но не переменным. Я понимаю что можно сделать указатель *pB класса C открытым и тогда проблема отпадет, но указатель по условию должен быть private, к нему не должно быть прямого доступа у разработчика. Читал что-то про указатели на методы класса, но примеров не было. так и не понял. ПОМОГИТЕ РЕШИТЬ ПРОБЛЕМУ!!! ![]() |
Автор: azesmcar 24.4.2009, 09:30 | ||
не понял что это означает? нужен константный доступ? возвращайте константную ссылку/указатель насчет указателей на функции члены вот пример
правда не знаю как это может помочь в данном случае |
Автор: Rififi 24.4.2009, 09:37 |
Читать про паттерны "Aggregation", "Wrapper", "Proxy", "Facade" - возможно что-то удастся применить. |
Автор: azesmcar 24.4.2009, 09:38 |
Rififi Да, я тоже хотел Прокси предложить, похоже на то что это может помочь, но я пока суть проблемы полностью не осмыслил. |
Автор: math64 24.4.2009, 09:47 | ||
|
Автор: cymtu 24.4.2009, 10:11 | ||||
Да неплохо пойдет пока ![]() Но ещё покапаюсь в
|