C++名空间以及嵌套类注意事项

博客为本人原创,刚接触C++,作为学习笔记使用,如有错误请各位多批评!

1.名空间相当于人为定义一个作用域,解决了名称冲突的问题,在大项目中有重要意义。

2.使用方法:

(1)名::调用对象

(2)声明 using 名::对象

(3)using namespace 名(类似友元类)

3.(2)(3)两种方式区别在于第二种声明后如果在本作用域下声明同名内容,编译无法通过,相当于重复定义;而第三种只是说我这个作用域可以使用声明的作用域里面的内容,当在本作用域声明同名内容时,不会发生冲突,而是会覆盖其他作用域的同名内容。

4.名空间可以进行域外定义,也可以合并定义,还可以嵌套(名空间里面的名空间)。

5.一般来说,名空间里的内容都要进行初始化。

6.名空间也可以有别名,使用方法:namespace 别名 = 本名;,别名必须要初始化,且不能重复做其他名字的别名。

7.类就是一个特殊的名空间。

8.名空间是横向的切分,其嵌套使得名空间内部可以进行纵向切分,比如几个小组里面的张三小组,张三小组又分为张三A,张三B等等,对于嵌套的调用要先说明外部空间,层层剥开,就好像要查找实验中学二年级1班的小明,需要从大范围逐步缩小到小范围。嵌套名空间满足屏蔽原则(第3点中的覆盖)。

9.嵌套类即类中再套类,这两者关系与名空间不同,其各自内存空间是独立的,嵌套类意义在于隐藏代码和防止头文件的包含,但破坏了封装。

10.对于嵌套类来说,内外的类可以相互访问(有血缘关系),但外部类只能访问内部类public下的内容,而内部类则可以访问外部类的所有内容,也就是说,类虽然是特殊的名空间,但它自己也有特殊性。

11.如果要从外界访问被嵌套的类,要受到外部类权限的制约。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值