По крайней мере, если я правильно понимаю ваш вопрос, ответ - нет. Например, такой код:
class outer {
class inner {
int x;
};
void use_x() { inner::x = 0; }
};
... не скомпилируется. Тот факт, что inner
вложено в outer
, не дает функциям-членам outer
любой специальный доступ к закрытым частям inner
.
Edit: post-edit, я вообще не вижу ничего необычного - A()
(очевидно) является членом class A
, который также включает в себя приватных членов a
и b
. Определение private
состоит в том, что он доступен (т. Е. Имя видно) для кодирования внутри класса, но не для кодирования вне класса. Поскольку A()
находится внутри класса, ему видны и a
, и b
.