C++ 在类定义中使用结构的详细信息和好处

C++ 在类定义中使用结构的详细信息和好处,c++,class,struct,C++,Class,Struct,考虑以下代码: class myclass { public: //some public stuff private: struct classitem { int x; classitem *next; }; } 我不明白的是, classitem只是一个定义,还是它已经是此类对象的成员?换句话说,当我们创建这个类的对象时,它会填充任何内存吗?如果它只是一个

考虑以下代码:

class myclass 
{
    public:
        //some public stuff
    private:
        struct classitem  
        {
            int x;
            classitem *next;
        };
}
我不明白的是,
classitem
只是一个定义,还是它已经是此类对象的成员?换句话说,当我们创建这个类的对象时,它会填充任何内存吗?如果它只是一个定义,我们将来将如何使用它?

在类定义中使用这个
struct
而不是在类外定义它有什么好处?

它只是一个定义

如果需要对象,请使用:

struct T { ... } instance;
内部结构的作用域将在外部结构定义中-至于它为什么有用,例如,如果您不希望在类之外使用该类型,您可以将类型(类)定义设为私有

class NHeadedBeast {
   struct Head {
       Head() : numHeads{2}, eyesPerHead{4} { }
       int numHeads;
       int eyesPerHead;
   } head;
public:
   int getEyeCount() const {
       return head.eyesPerHead * head.numHeads;
   }
};

请注意Head类是多么的具体,它也被称为Head,它很有可能与其他类型名称发生冲突。换句话说,没有人会希望在没有我的NHeadedBeast类的情况下使用该Head类型,因此最好使该类型不可访问并将其隔离在NHeadedBeast范围内。

好的,为什么我们需要在类中定义这样的结构?我们将如何从中受益?@sweeneytodorganization和/或封装。是的,我明白了,但如果你能给出一个具体的例子,我将非常高兴