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

绵阳网站建设网站建设哈尔滨的网络优化能做么

绵阳网站建设网站建设,哈尔滨的网络优化能做么,免费做网站网站的软件,微网站怎么建设这篇文章我们讲一下之前写代码的时候的一个习惯&#xff0c;也就是不使用using namespace std。如果我们接触过最早的C教程&#xff0c;那么第一节课都会让我们写如下的代码&#xff1a; #include<iostream>using namespace std;int main() {cout << "Hello …

这篇文章我们讲一下之前写代码的时候的一个习惯,也就是不使用using namespace std。如果我们接触过最早的C++教程,那么第一节课都会让我们写如下的代码:

#include<iostream>using namespace std;int main() {cout << "Hello World!" << endl;cin.get();
}

非常经典的入门代码。同样也使得using namespace std这句话深入人心了。但是如果我们看之前教程里面的代码,基本上清一色都是不用using而是直接把std写出来,如下所示:

#include<iostream>int main() {std::cout << "Hello World!" << std::endl;std::cin.get();
}

那么问题就来了,为什么我们不使用using namespace std?这样可以省去很多写std::的麻烦,不是么?但是实际上我们不建议这样使用。

我们在使用std::的时候,其实表明的含义是这些是来源于一个名为std的命名空间。如果有一个很长的命名空间或者是自己的命名空间,也许我们可以这样使用。但是对于std来说,写一下std::并不是一件麻烦的事情,但是这样可以很清晰地表明我们这些函数/类是来自于std命名空间内的,所以这是一件很有利的事情。如果没有std::,那我们就无法判断这些个函数变量来源于哪个命名空间,也许我们可以以变量的命名书写规则来进行区分,但是书写风格有的时候其实也是会撞车的。就比如Cherno所在的EA有开发自己的EASTL,命名方式是完全一样的,这个就会带来麻烦和困扰。

我们可以举一个简单的例子来说明如果不指明namespace,会带来哪些问题:

#include<iostream>
#include<string>
#include<algorithm>namespace Apple {void Print(const std::string& str) {std::cout << str << std::endl;}
}namespace Orange {void Print(const char* str) {std::string str_r = str;std::reverse(str_r.begin(), str_r.end());std::cout << str_r << std::endl;}
}int main() {using namespace Apple;using namespace Orange;Print("HelloWorld");std::cin.get();
}

如上所示,我们定义了两个namespace,都是简单的打印函数,其中Orange是反向打印,而Apple是正向打印。我们同时采用using namespace然后看看会发生什么:

很神奇,我们的程序选择了Orange当中的打印。没有发生编译错误,但是运行结果并不一定是我们想要的。这个是因为什么?因为我们输入的对象是一个const char*类型的变量,虽然Apple当中的Print其实也能用,但是它需要进行一次隐藏的类型转换,转换为std::string,那么和Orange当中的Print一比较,编译器就会选择不需要类型转换的Orange当中的函数了。

所以如果我们想要准确的标明我们使用的是哪个命名空间里面的函数,肯定最好写成Orange::或者是Apple::了,但是如果非得就不想这么写行不行呢?也可以,如下所示:

using Apple::Print;
Print("HelloWorld");

这样写的话,那么我们在本作用域内所有的Print就都是Apple当中的Print了。

但是需要注意的一点是,在使用using namespace的时候,一定一定要控制using的适用范围,在一个小作用域内,或者是在一个文件里那是最好不过的。所以千万千万不要把using namespace写到头文件当中!如果这样的话,经过多轮的头文件来回包含,很有可能会导致我们都不知道我们用的是哪个namespace当中的函数了,从而引发代码的错误。所以千万千万不要这样用!

好了以上就是本文的全部内容了,希望大家喜欢!


文章转载自:

http://ZAvAGrwF.kfstq.cn
http://cmrLT4ms.kfstq.cn
http://HAzlwUuN.kfstq.cn
http://nd459qbf.kfstq.cn
http://olHgedAI.kfstq.cn
http://39l8Sfka.kfstq.cn
http://cfvJg3LJ.kfstq.cn
http://F13C7oCJ.kfstq.cn
http://ScvhbxN9.kfstq.cn
http://2Cn0DJIy.kfstq.cn
http://VJMqb3tS.kfstq.cn
http://ZmRNnj0J.kfstq.cn
http://iRLS3l48.kfstq.cn
http://4NaUtpjv.kfstq.cn
http://1a61UZCx.kfstq.cn
http://RG5a7tE3.kfstq.cn
http://q7Seqynf.kfstq.cn
http://yqNs7NSH.kfstq.cn
http://JemYYuAc.kfstq.cn
http://AXChLacc.kfstq.cn
http://DTRPoAND.kfstq.cn
http://4r4CJBHs.kfstq.cn
http://VQQxW3x9.kfstq.cn
http://JZr7yCzB.kfstq.cn
http://6fKrrMWB.kfstq.cn
http://oDENp05S.kfstq.cn
http://gjdqvx87.kfstq.cn
http://BIzM5OmG.kfstq.cn
http://LtpkO1T1.kfstq.cn
http://XIvhdgOR.kfstq.cn
http://www.dtcms.com/wzjs/634318.html

相关文章:

  • 艺术网站建设东莞开发一个app多少钱
  • 汕头网站建设推广价格wordpress首页展示分类页面
  • 广东省建设厅网站蒙古文门户网站建设督导
  • 绍兴建站模板厂家做h的小说网站有哪些
  • 新网站如何做流量做自己视频教程的网站
  • 从化网站建设推广任县网站建设网络公司
  • 怎样更新网站宁波甬城配网建设有限公司
  • 赣州专业企业网站建设wordpress 管理员密码忘记
  • 怎么建淘宝客网站简洁大气企业网站源码 后台
  • 兴县做网站的公司西安网站开发工资
  • 马鞍山网站设计价格上海境外输入
  • 专业 网站建设怎么写代码做网站
  • 深圳品牌网站建设公司常熟市住房建设局网站
  • 有效的小企业网站建设怎么快速推广app
  • 半岛建设公司网站网站设计与推广
  • 网站开发实验报告总结老鬼seo
  • 网站外包优化全国小学网站建设
  • 学校 网站建设招聘电脑云主机
  • 十堰网站建设怎么样做网站运营有趣吗
  • 网站建设就业前景2017零度业务网站
  • 在网上怎么做网站又快又好自助建站系统
  • 多少钱表情包谷歌seo服务
  • 秦皇岛网站制作费用阿里巴巴网站工作流程
  • 引流推广网站平台栾城区城乡建设局网站
  • PHP网站名字90设计包图网
  • 网站建设哪家不错自学网站建设工资
  • 网站建设淘宝模板上海优质建筑设计网公司
  • 改版网站会影响百度安徽六安市地图
  • 网站商城建设方案10个网站 云主机需求
  • 校园门户网站建设项目技术支持手工艺品网站建设策划书