什么是C++中的容器或嵌套?

Mah*_*ahi 3 c++ object

我理解的是:容器:一个类包含另一个类对象作为成员数据.

请举例说明.

谢谢.

Kla*_*aim 6

类嵌套只是在另一个类中定义一个类,如下所示:

class A
{
public:
   class B 
   {
   public:
       class C{};
   };

};
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用范围运算符访问嵌套类,就像使用命名空间一样:

A a;
A::B b;
A::B::C c;
Run Code Online (Sandbox Code Playgroud)

现在当一个类包含另一个类的对象时,它是一个聚合:

class D
{
public:

   A myA;

   void do_something();

private:
   A::B myB;

};
Run Code Online (Sandbox Code Playgroud)

然后,如果它是公开的,您可以访问该成员:

D d;
process( d.myA ); // access to myA
Run Code Online (Sandbox Code Playgroud)

如果它不可访问,那么您可以通过功能提供它.无论如何,在类函数内部,您可以直接访问该成员:

void D::do_something()
{
    doit( myB );
    // or
    doit( this->myB );
}
Run Code Online (Sandbox Code Playgroud)