栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 嵌套类和局部类

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 嵌套类和局部类

嵌套类

定义
一个类可以定义在另一个类的内部,被称为嵌套类,定义嵌套类的类被称为外部类。嵌套类时一个独立的类,和外层类基本没什么关系,它是一个独立的类,它的成员不属于外部类外围类的成员也不属于该嵌套类

作用
之所以引入这样一个嵌套类,往往是因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。

作用域
1、如果嵌套类声明在一个类的私有部分,则只有嵌套类的外部类可以访问;
2、如果嵌套类声明在一个类的保护部分,则只有嵌套类的外部类和外部类的派生类可以访问;
3、如果嵌套类声明在一个类的公有部分,都可以访问但是必须加上外部类的外部类作用域限制符。

访问权限
1、嵌套类名与它的外部类的对象成员名具有相同的访问权限规则,外部类对象的访问权限只有public,所以嵌套类也是一样;
2、嵌套类中说明的成员不是外部类中对象的成员嵌套类的出现只是告诉外围类有一个这样的类型成员供外围类使用。并且,外围类对嵌套类成员的访问没有任何特权,嵌套类对外围类成员的访问也同样如此,它们都遵循普通类所具有的标号访问控制。
3、嵌套类可以直接引用外围类的静态成员、类型名和枚举成员(假定这些成员是公有的)。
4、嵌套类必须声明在类的内部,但是可以定义在类的内部或者外部。
5、在外层类之外定义一个嵌套类时,必须以外层类的名字限定嵌套类的名字。

class Outer
{
public:
	 class Inner
	 {
	 public:
	  	void Fun();
	 };
public:
    Inner obj_;
 void Fun()
 {
   cout<<"Outer::Fun...."<   局部类  

类可以定义在某个函数的内部,这样的类被称为局部类,局部类定义的类型只在定义它的作用域内可见。
局部类不能使用函数作用域中的变量。
局部类已经封装在函数作用域中,通过信息隐藏进一步封装就显得没什么必要了。
可以在局部类的内部再嵌套一个类,此时,嵌套类的定义可以出现在局部类之外且与局部类相同的作用域中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号