将类声明放入另一个类中,被称为嵌套类...嵌套类一般可以防止名称突变
嵌套类可以在三种位置.
1. 私有成员(私有部分声明的)
class Base
{
private:
class Next
{
private:
int a;
public:
...
};
public:
...
};
外部无法使用,只能在类内部使用Base派生的类也无法使用
2.保护成员(保护部分声明的)
class Base
{
protected: //保护
class Next
{
private:
int a;
public:
...
};
public:
...
};
外部无法知道它的存在,对于后者来说是可见的!
2.公有成员(公有部分声明的)
class Base
{
public: //
class Next
{
private:
int a;
public:
...
};
private:
...
};
对于任何都是可见的,都知道Next的存在
在外部定义的时候要加上作用域解析符(::)
如:
Base::Next nx; //公有部分 声明Base类中的公有部分的类Next的对象