当前位置: 首页 > wzjs >正文

上海网站建设信息网适合员工的培训课程

上海网站建设信息网,适合员工的培训课程,网站内容避免被采集,wordpress 显示错误500这篇文章我们来稍微多讲一点有关于C当中的命名空间的内容。在上一篇文章当中,我们举了个Apple和Orange命名空间内有相同的Print函数的情况。那么在我们现实当中,其实这种有相同命名的函数/变量的需求还是很多的,因为很多函数可能功能就是类似…

这篇文章我们来稍微多讲一点有关于C++当中的命名空间的内容。在上一篇文章当中,我们举了个Apple和Orange命名空间内有相同的Print函数的情况。那么在我们现实当中,其实这种有相同命名的函数/变量的需求还是很多的,因为很多函数可能功能就是类似的,命名的时候也就是类似的。但是如果有命名相同的函数定义放在一起,会发生链接错误,所以我们有了命名空间。

在C当中,是没有命名空间的,所以如果在C当中写一个库,需要用这个库的名字来作为前缀或者后缀,以此和其他库里面的函数区分开。我们之前使用过的glfw就是一个典型的例子。但是在C++当中,有了命名空间的帮助,我们就可以直接使用命名空间,而不用在变量/函数上面挂上一大堆前缀后缀,才能让明明不会发生冲突了。

命名空间的操作符就是::,这个我们在之前已经见了很多次了,这个符号的作用就是说明我们在使用这个命名空间内的变量。而之前我们讲类当中的静态方法时,也接触过这个符号。其实类一定程度上也可以看作是个命名空间,尤其是对于静态方法,那既然不会被实例化,是这个类独有的,那就可以采用和命名空间相似的使用方法。

我们前面讲到过,如果在一个文件内全使用某一个命名空间内的变量的话,可以使用

using namespace Apple;
using Apple::Print;

这两句当中哪句都可以,看使用的需求。当然我们也可以在命名空间里面嵌套命名空间:

namespace Apple {namespace functions {void Print(const std::string& str) {std::cout << str << std::endl;}}
}

可以看到我们套了两层,那么如果想要使用这个Print函数,我们可以用

 using Apple::functions::Print;

或者就直接用

using namespace Apple::functions;

但是如果我们用

using namespace Apple;

就会发现这是找不到Print的,因为内层命名空间内部对于外层的命名空间其实是不可见的。如果想要解决这个问题,就需要使用

namespace Apple {inline namespace functions {void Print(const std::string& str) {std::cout << str << std::endl;}}
}

通过inline修饰,这样内部就可见了。

以上就是这篇文章的全部内容了,希望大家能够喜欢!

http://www.dtcms.com/wzjs/89713.html

相关文章:

  • 湖州做网站公司汕头网站建设开发
  • 运动类网站东营网站建设
  • 网站建设徐州html网页制作成品
  • axure可以做网站外贸推广网站
  • 建设网站市场规模产品营销推广方案
  • 网站首页怎么做如何做好营销推广
  • 网站图片轮播怎么做的云南seo公司
  • 机械技术支持中山网站建设seo网站推广技术
  • 百度山西网站建设和百度推广网站推广的方法有哪几种
  • 幼儿园网站建设方案如何宣传推广
  • 福州做网站的公司有哪些夸克浏览器网页版入口
  • 做网站 注意宁波seo博客
  • 网站建设的功能有哪些安徽网络关键词优化
  • 武汉建设委员会安康地seo
  • 网站建设师杭州网站推广找哪家
  • 广东网站优化公司百度网盘手机版
  • 汕头网站排名优化以下属于网站seo的内容是
  • 物流网站建设公司电商培训机构有哪些?哪家比较好
  • 做兼职拍照片传网站站内搜索引擎
  • 网站建设维护论文青岛的seo服务公司
  • 网站制作网站建设需要多少钱搜索引擎入口google
  • win10做网站seo视频
  • 网站建设怎么进后台教育培训机构平台
  • 自己做的简单网站下载百度云盘官网登录入口
  • 天津河东做网站贵吗怎么让百度收录网址
  • 大城网站建设抖音关键词排名优化
  • 网站建设文件夹结构怎样创建自己的网站
  • 做网站指导宁波优化系统
  • 沈阳高端网站设计百度模拟点击
  • 内部网站建设app抖来查关键词搜索排名