嵌套类可以先在外围类中声明,然后在外围类中定义
class List
{
private:
class ListItem;//声明
class Red
{
ListItem *pli; //在看到类体前只能定义该类的指针或引用
};
class ListItem //定义
{
Red *pref;
};
嵌套类本质是另一个类的"类型成员",两个类作为两个命名空间,成员名可相同 //即这两个nod类声明为同一个名字是没有关系的
class Node
{
};
class Tree
{
public:
int m_iVal;
class Node //Tree::Node隐藏了::Node
{
int m_iVal;
};
Node *tree; //ok:被解析为嵌套类:Tree::Node
};