Здравствуйте, adr, Вы писали:
adr>Необходимо унифицированное решение для вызова метода Trace для экземпляра произвольного класса. adr>Для решения такого класса задач разработан патерн "Анонимный адаптер". Эта концепция отлично работает в Java, Технически анонимный адаптер это вложенный класс, для методов которого все члены внешнего оказываются в глобальной области видимости. Попробовал реализовать конструкцию на С++ и получил ошибку
adr>c:\mine\ServerLib\traceSound.cpp(67): error C2352: 'server_lib::TTraceSound::Play' : illegal call of non-static member function
adr>Компилятор Microsoft VC7
В С++ вложенный класс не имеет доступа к членам объемлющего класса.
adr>И какой же тогда смысл в объявлении классов как вложенных впринципе, если нет доступа к мемберам внешнего?
Ну, применение вложенных классов совсем не ограничивается доступом к членам объемлющего.
Воспользуйся поиском (когда он заработает) — этот вопрос обсуждался несколько раз.