Вложение класса - это просто определение класса в другом классе, например:
class A
{
public:
class B
{
public:
class C{};
};
};
Затем вы можете получить доступ к вложенному классу, используя оператор области действия, как вы бы сделали с пространствами имен:
A a;
A::B b;
A::B::C c;
Теперь, когда класс содержит объект другого класса , это совокупность :
class D
{
public:
A myA;
void do_something();
private:
A::B myB;
};
Тогда вы можете получить доступ к члену, если он общедоступен:
D d;
process( d.myA ); // access to myA
Если он недоступен, вы можете предоставить его с помощью функции. В любом случае, внутри функций класса вы можете получить прямой доступ к члену:
void D::do_something()
{
doit( myB );
// or
doit( this->myB );
}