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和/或封装。是的,我明白了,但如果你能给出一个具体的例子,我将非常高兴