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

湖北省建设厅乡镇污水官方网站推广平台有哪些

湖北省建设厅乡镇污水官方网站,推广平台有哪些,桂林网站制作网站,wordpress 中国企业概述 在C中#xff0c;我们会使用变量、常量、函数、类、对象、结构体等各种元素。随着工程越来越庞大#xff0c;代表这些元素的标识符冲突的概率也越来越大。为了解决标识符命名冲突的问题#xff0c;C标准在1995年引入了关键字namespace#xff0c;也叫做命名空间。使用…概述 在C中我们会使用变量、常量、函数、类、对象、结构体等各种元素。随着工程越来越庞大代表这些元素的标识符冲突的概率也越来越大。为了解决标识符命名冲突的问题C标准在1995年引入了关键字namespace也叫做命名空间。使用命名空间后标识符会归属于不同的空间即使重名了一般情况下也不会发生冲突。 规则 1、命名空间的定义比较简单将需要放到命名空间内的元素置于namespace 名称 {和}之间即可。 namespace my_data {int nData 22;int Add(int a, int b){return a b;} } 2、命名空间只能在全局范围内定义不能在局部范围内定义。 int main() {namespace my_data // 编译出错{int nData 22;}return 0; } 3、访问命名空间中的元素时有三种方式一是添加命名空间名称和作用域限定符二是使用using namesapce将整个命名空间引入三是使用using将命名空间中指定的元素引入后续使用该元素时就不用再添加命名空间和作用域限定符了。 namespace my_data {int nData 22; }using namespace my_data; using my_data::nData;int main() {printf(%d\n, my_data::nData);return 0; } 4、命名空间可以是匿名的此时命名空间中的元素只能在本文件中访问外界访问不了相当于给元素增加了static。 namespace {int nData 22; }int main() {printf(%d\n, nData);return 0; } 5、命名空间可以嵌套也就是在一个命名空间内再定义另一个命名空间。 namespace my_data {int nData 22;namespace my_data2{int nData2 66;} }int main() {printf(%d, %d\n, my_data::nData, my_data::my_data2::nData2);return 0; } 6、可以给命名空间取别名并使用这个别名访问命名空间。 namespace my_data {int nData 22; }namespace my_data_alias my_data;int main() {printf(%d\n, my_data_alias::nData);return 0; } 7、允许存在多个相同名称的命名空间编译器会自动将其合并到同一个命名空间中。 namespace my_data {int nData 22; }namespace my_data {int Add(int a, int b){return a b;} } 8、命名空间中的函数其定义可以放在命名空间内部也可以放在命名空间外部。放在命名空间外部时函数前面必须加上命名空间名的前缀。 namespace my_data {int Add(int a, int b);class CBase{public: CBase();}; }int my_data::Add(int a, int b) {return a b; }my_data::CBase::CBase() {NULL; } 9、尽量不要在头文件中使用using语句这相当于引入了命名空间内的元素。其他文件使用时可能会导致命名冲突。 作用域 1、不使用命名空间时如果全局变量和局部变量同名则局部变量将覆盖全局变量。 int nData 66;int main() {int nData 88;printf(%d\n, nData); // 输出88return 0; } 在上面的示例代码中输出的值为88。这是因为局部变量nData和全局变量nData重名局部变量自动覆盖了全局变量。如果想强制使用全局变量则可以使用::nData的写法。可参看下面的示例代码。 int nData 66;int main() {int nData 88;printf(%d\n, ::nData); // 输出66return 0; } 2、在全局范围内使用using语句会在全局范围内引入命名空间中的元素。 namespace my_data {int nData 22; }int nData 66;using namespace my_data; // 或者 using my_data::nData;int main() {printf(%d\n, nData); // 编译出错return 0; } 编译上述的示例代码时会发生编译错误。这是因为在全局范围内使用using namespace my_data或using my_data::nData时相当于在全局范围内又声明了一个nData会与已有的全局变量nData冲突。再来看看下面的示例代码。 namespace my_data {int nData 22; }using namespace my_data; // 或者 using my_data::nData;int main() {int nData 66;printf(%d\n, nData); // 输出66return 0; } 此时不会有编译错误了而是正常输出66因为局部变量nData覆盖了using namespace my_data或using my_data::nData引入的全局变量nData。 3、在局部范围内使用using 命名空间名::元素语句会在当前作用域范围内引入命名空间中指定的元素。 namespace my_data {int nData 22; }int main() {int nData 66;if (true){using my_data::nData;printf(%d\n, nData); // 输出22}return 0; } 在上面的示例代码中输出的值为22。这是因为在局部范围内使用using my_data::nData时相当于在当前作用域if代码块内声明了一个临时变量nData这个临时变量会覆盖main作用域下的临时变量nData故最终输出22。再来看看下面的示例代码。 namespace my_data {int nData 22; }int main() {int nData 66;using my_data::nData;printf(%d\n, nData); // 编译错误return 0; } 我们把if代码块去掉了这次会输出什么值呢不会输出任何值编译会发生错误。这是因为我们在main作用域下使用了using my_data::nData从而导致与相同作用域下声明的nData重名了。 4、在局部范围内使用using namespace 命名空间名语句会在当前作用域范围下将命名空间中所有的元素引入全局范围。 namespace my_data {int nData 22; }int main() {if (true){using namespace my_data;}printf(%d\n, nData); // 编译错误return 0; } 上面的示例代码会发生编译错误为什么呢using namespace my_data已经将命名空间中所有的元素引入全局范围了为什么在main作用域下访问不了nData呢这是因为using namespace my_data虽然将所有元素引入了全局范围但只会在当前作用域范围下生效。再来看看下面的示例代码。 namespace my_data {int nData 22; }int nData 66;int main() {if (true){using namespace my_data;printf(%d\n, nData); // 编译错误}return 0; } 上面的示例代码仍然会发生编译错误因为using namespace my_data将所有元素包括nData引入了全局范围这与已经声明的全局变量nData冲突了。继续看下面的示例代码。 namespace my_data {int nData 22; }int main() {int nData 66;if (true){using namespace my_data;printf(%d\n, nData); // 输出66}return 0; } 在上面的示例代码中输出的值为66。using namespace my_data将所有元素包括nData引入了全局范围但main中定义的局部变量nData会覆盖这个引入的同名的全局变量nData。再来看看下面的示例代码。 namespace my_data {int nData 22; }int main() {int nData 66;using namespace my_data;printf(%d\n, nData); // 输出66return 0; } 我们把if代码块去掉了仍会输出66。解释同上这里就不再赘述了。
http://www.hkea.cn/news/14505058/

相关文章:

  • 中卫网站定制开发价格深圳电子商务平台设计
  • 重庆排名优化整站优化北京做网站制作的公司哪家好
  • 网站建设银行转账三水网站制作
  • 人工智能设计网站设计师的网站
  • 杭州微网站开发公司泾阳县建设局网站
  • 武进区城乡建设局网站网站原型怎么做
  • 电力网站怎么做2狠狠做网站
  • 朋友圈海报用什么网站做的网站建设需要些什么资料
  • 涂料网站建设wordpress+one+page
  • 建立什么样的网站好joomla 2.5:你的网站建设_使用与管理 下载
  • 做网站平台多少钱青岛开发网站
  • 新手学做免费网站软件湖北建筑网
  • 著名的个人网站网页加速器插件
  • 网站进入之前动态效果泉州网
  • 做衣服招临工在什么网站找查看网站cms
  • 西宁哪里做网站佛山专业网站制作
  • 免费网站空间论坛商务网站的建设与维护
  • 在哪个网站做推广好wordpress门户模板
  • 做游戏直播什么游戏视频网站好搜索关键词的网站
  • 制作网站不给源代码东莞疾控中心最新通知
  • 做网站不给源码华为手机官网商城
  • 北京朝阳区建设工作办公网站各网站的网络联盟
  • 有什么好黄页网站网站设计包括
  • 网站维护的重要性地方门户类网站有哪些
  • 犀浦网站建设正规代运营公司排名
  • 义乌网站建设技术托管怎么建论坛网站
  • 怎么做快法务类似网站公众号模板制作精美
  • 副业做网站程序网站建设后的心得
  • 企业网站备案网址校园网网站建设费用
  • 模板 网站 教程ae资源网免费