C++局部类和嵌套类

函数体内定义的类称为局部类,该类的定义和实现必须以内联的形式写在一起(因为无处可单独写类实现)。局部类不能有静态数据,不能派生子类,但可以继承其他基类。局部类的作用之一是用于实现基类的类型转换。

嵌套类(包括嵌套结构体)是独立的类(结构体),与其外围类无关,相当于给外围类增加了一个新的数据类型,该类型如果没有实例化对象,则外围类对象的数据空间中并不包含嵌套类的数据成员。通常,在嵌套类声明或定义之后,外围类中会声明嵌套类的对象,并在某个函数中创建之。也就是说,嵌套类通常不对外(外围类public区中的嵌套类,外部可使用。private区中的嵌套类,外部不可用),仅用于对外围类做功能方面的补充与完善,使外围类拥有更多类型的数据成员,并通过这些数据成员增加自己的实用价值,实现更多的功能。如果嵌套类定义在外围类的public区中,嵌套类的对象也可以被其它类或函数使用,声明其对象的语法为:外围类::嵌套类 对象名;

嵌套类不拥有外围类的成员,嵌套类的对象无法直接调用外围类的成员函数;外围类也不拥有嵌套类的成员,外围类的对象同样无法直接调用嵌套类的成员函数。即:嵌套类的对象与外围类的对象没有任何关联,各有自己的数据成员和成员函数。当然,静态数据成员和静态成员函数除外,嵌套类可直接使用外围类的静态成员、枚举成员和外围类的类名。嵌套类的名字仅在最近一层的外围类中可见,其他作用域内不可见。

关于嵌套类,还有以下几点需注意

SwingCoder

如果本文对您有所启发或助益,请微信打赏

创作时间: 2011.05.21 20:17
最后修改: 2017.05.10 15:27

本文版权:UnderwaySoft   共享协议:署名-非商业使用-禁止演绎


上一篇: C++模板技术和泛型编程
下一篇: Tonica Fugata 9.5.01汉化完工

 随机推荐:
Email: underwaySoft@126.com 微信公众号: UnderwaySoft