Re[3]: Проблема доступа к членам класса из вложенного
От: folk Россия  
Дата: 10.12.04 08:47
Оценка:
Hroftina:

> F>class TTraceSound

> F>{
>
> F> void Trace(eTraceMessageType, const char*, ...);
>
> F> public:
> F> class TAnonymousAdapter
> F> {
> F> public:
> F> void Trace(eTraceMessageType, const char*, ...) { outer_->Trace(...); }
>
> F> private:
> F> friend class TTraceSound;
> F> TAnonymousAdapter(TTraceSound* outer): outer_(outer) {}
> F> TTraceSound* outer_;
> F> };
> F>};
> F>[/c]
>
> Только вот дружба должна быть в другую сторону...
> class TTraceSound {
> friend class TAnonymousAdapter;

В "твою" сторону дружба точно бессмысленна (по крайней на современных компиляторах).
Класс-член внешнего класса имеет доступ к приватным членам внешнего, точно также как функция-член класса имеет доступ к приватным членам класса.

> ...

>
> А зачем это все нужно?
> Петтерн адаптер (wrapper) подразумевает создание класса, интерфейс которого удовлетворяет нашим требованиям, а реализуется посредством класса/классов с другим интерфейсом. Зачем вложенный класс?

мне самому непонятно, я просто показал что надо сделать чтобы избавиться от той ошибки
Posted via RSDN NNTP Server 1.9 delta
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.