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

黑icp 网站建设河北省企业网站建设公司

黑icp 网站建设,河北省企业网站建设公司,芷江建设工程招投标网站,网页建站要多久在这一章中C 头文件说明_c 头文件 说明注释写法-CSDN博客 提到了可以用命名空间的方式规避函数变量命名冲突。 具体是怎么做呢?今天在这里说明一下。 用namesapce 来定义命名空间。 如: namespace myspace{}在大括号里,就可以写你的变量…

在这一章中C++ 头文件说明_c++ 头文件 说明注释写法-CSDN博客

提到了可以用命名空间的方式规避函数变量命名冲突。

具体是怎么做呢?今天在这里说明一下。

用namesapce 来定义命名空间。

如:

namespace myspace{}

在大括号里,就可以写你的变量和函数代码了。

这样,这里面变量和函数都属于mysapce命名空间。

示例代码:

#include <iostream>using namespace std;
namespace myspace{  //定义命名空间myspaceint a = 5;void couta(){cout << a << endl;}
}
namespace mysp2  //定义命名空间mysp2
{int a = 52;void couta(){cout << a << endl;}
}int main() {//调用命名空间各自的couta函数myspace::couta();mysp2::couta();
}

效果:

可以看到,定义命名空间后,就可以放心的在里面写代码了,不用担心和其他文件命名冲突了。

只需要在调用的时候,命名空间名加上::使用。

如果我们不想加上命名空间名,则开头加上using namespace myspace 引用。

#include <iostream>using namespace std;
namespace myspace{  //定义命名空间myspaceint a = 5;void couta(){cout << a << endl;}
}
namespace mysp2  //定义命名空间mysp2
{int a = 52;void couta(){cout << a << endl;}
}
using namespace myspace;//引入myspace命名空间int main() {//直接调用couta();
}

这里需要注意的是如果后面又加了using namespace mysp2;

两个命名空间有同名变量或函数,这种用法就会有冲突是不合法的。

如果不想using引用整个命名空间,只想使用命名空间的某个函数或某个变量,可以这样引用:

using  myspace::couta;

这样mysapce命名空间的变量a不会被访问到。

前面是单文件的示例了,接下说一下多文件怎么使用。

像正常编写多文件cpp一样,需要分成头文件.h和cpp(注意:另提一点如果是定义模板类则尽量代码也写在.h中)。 

头文件中,写命名空间的声明,变量要加上extern ,函数名可以不用加,如

myspace.h

//命名空间 声明 
namespace myspace {extern int a;void couta();
}

myspace.cpp

#include<iostream>
#include"myspace.h"
using namespace std;
//命名空间定义
namespace myspace{int a = 10;void couta(){cout << a << endl;}
}

main主程序cpp

#include <iostream>
#include"myspace.h"
using namespace std;
//命名空间 使用
using namespace myspace;
int main() {couta();
}

运行效果:

ok,以上就是命名空间大概的使用和创建的方法。

这里还要提的一个点的是:

using namespace myspace;
int main() {myspace::couta();
}

using了命名空间,然后又再指定命名空间mysapce::couta.

为什么好像不会引起重复引用的问题,比如不会变成这样:

myspace::myspace::couta();

 为了避免这样的误解,我们必须了解命名空间的解析方法。

当使用了using namespace myspace;后,编译器会在当前的作用域查找变量和函数是否属于mysapce。而不是给所有的函数和变量硬性加上mysapce。这是智能的。

而当遇到myspace::couta();,这种用法的优先级更高,所以也会忽略掉using namespace myspace;而是直接去mysapce里面查找。所以这两者共同使用完全没问题。

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

相关文章:

  • google移动网站建站十大原则安徽工程建设信息网站6
  • 做搜狗网站优wordpress 动态文字
  • 雄安免费网站建设电话网站开发用什么框架好
  • 网站建设的用处南平摩托车罚款建设网站缴费
  • 云南建设学院的网站大丰seo排名
  • 双线主机可以做彩票网站吗网站备案有什么要求吗
  • 个人外贸网站做电信宽带合适做网站吗
  • 网站建设 后台电子商务网站开发课程
  • 无锡网站建设报价明细表网络营销相关的岗位有哪些
  • 蓝德网站建设关键词优化搜索引擎
  • 个人如何建立免费手机网站兰州新站点seo代理
  • 网站页面设计原则自己做的网站怎么用qq登入
  • 葫芦岛市住房和城乡建设局网站logo设计商标设计
  • 宏润建设集团有限公司网站网站app开发计划书
  • 建设银行办信用卡网站首页wordpress some chinese please
  • 遵义网站页设计制作石家庄建站培训
  • 网站搭建步骤外贸网站seo推广
  • dede网站文档不能更新曹健的wordpress博客
  • 中国建设银行官方网站 认证商务网站欣赏
  • 奈曼旗建设局网站网站建设教程asp
  • 鹏达建设集团有限公司网站网站建设培训班学费
  • 青岛网站设计制作html5网站的优点
  • 西安市长安区建设局网站找装修公司上什么网站
  • 网站的设计流程房产cms系统
  • 甘肃省建设厅门户网站室内家装设计
  • 网站押金收回怎么做分录看装修效果图哪个网站好
  • 正则表达式 网站地址wordpress文章归档调用
  • 公司网站建设泉州中国万网域名注册流程
  • 帮别人做钓鱼网站吗网络系统管理属于哪类专业
  • 赣州人才网官方网站做网页要去哪个网站