• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++学习笔记二十五-局部类

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、概述:

       1.可以在函数体内部定义类,这样的类称为局部类。一个局部类定义了一个类型,该类型只在定义它的局部作用域中可见。与嵌套类不同,局部类的成员是严格受限的。

       2.局部类的所有成员(包括函数)必须完全定义在类定义体内部,因此,局部类远不如嵌套类有用。

       3.实际上,成员完全定义在类中的要求限制了局部类成员函数的复杂性。局部类中的函数很少超过数行代码,超过的话,阅读者会难以理解代码。

       4.类似地,不允许局部类声明 static 数据成员,没有办法定义它们。

 

二、局部类不能使用函数作用域中的变量:局部类可以访问的外围作用域中的名字是有限的。局部类只能访问在外围作用域中定义的类型名、static 变量和枚举成员,不能使用定义该类的函数中的变量。

 

三、外围函数对局部类的私有成员没有特殊访问权,当然,局部类可以将外围函数设为友元。

 

四、实际上,局部类中 private 成员几乎是不必要的,通常局部类的所有成员都为 public 成员。

 

五、局部类中的名字查找:

       1.局部类定义体中的名字查找方式与其他类的相同。类成员声明中所用的名字必须在名字使用之前出现在作用域中,成员定义中所用的名字可以出现在局部类作用域的任何地方。

       2.没有确定为类成员的名字首先在外围局部作用域中进行查找,然后在包围函数本身的作用域中查找。

 

六、嵌套的局部类:

      1.可以将一个类嵌套在局部类内部。这种情况下,嵌套类定义可以出现在局部类定义体之外,但是,嵌套类必须在定义局部类的同一作用域中定义。照常,嵌套类的名字必须用外围类的名字进行限定,并且嵌套类的声明必须出现在局部类的定义中.

    void foo()
     {
        class Bar {
        public:
            // ...
            class Nested;    // declares class Nested
        };
        //  definition of Nested
        class Bar::Nested {
            // ...
        };
     }

     2.嵌套在局部类中的类本身是一个带有所有附加限制的局部类。嵌套类的所有成员必须在嵌套类本身定义体内部定义。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言-常用寄存器位操作总结发布时间:2022-07-13
下一篇:
安装g++,在centos上执行yum-yinstallgccgcc-c++libstdc++-devel发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap