C++ Primer 笔记——嵌套类 局部类

1.嵌套类是一个独立的类,与外层类基本没什么关系。特别的是,外层类的对象和嵌套类的对象是相互独立的。在嵌套类的对象中不包含任何外层类定义的成员,在外层类的对象中也不包含任何嵌套类定义的成员。

 

2.嵌套类在其外层类中定义了一个类型成员。和其他成员类似,该类型的访问权限由外层类决定。

class external
{
public:
    int m_id;    // internal里无法使用这个变量
    class internal;
};

class external::internal
{
public:
    internal();
};

external::internal::internal()
{
}

 

3.局部类定义的类型只在定义它的作用域内可见,局部类的所有成员都必须完整定义在类的内部。类似的,在局部类中也不允许声明静态数据成员,因为我们没法定义这样的成员。

 

4.局部类对外层作用域中的名字的访问权限收到很多限制,局部类只能访问外层作用域定义的类型名,静态变量以及枚举成员。如果局部类定义在某个函数内部,则该函数的普通局部变量不能被该局部类使用。

namespace A 
{
    int i;
    class partical
    {
    public:
        partical() { i = 0; }    // 正确
    };
}

void test()
{
    int i;
    class partical
    {
    public:
        partical() { i = 0; }    // 错误
    };
}


 

 

posted @ 2017-09-02 14:42  MyCPlusPlus  阅读(314)  评论(0编辑  收藏  举报