目录
正文最初的c++代码写法正文
c++在开发的过程当中需要使用到库函数,那么基于库函数的使用最初的流程是:1、include 相关的头文件,比如:iostream,string。 2、使用命名空间::库函数,比如:std::cin,std::cout,但是这样写总是有点麻烦的,所以可以尝试简化写法,就是using声明。
(资料图片仅供参考)
注意,这里的 :: 是作用域运算符,就是用来指向命名空间空间当中的方法的。
最初的c++代码写法
#includeint main(){ std::cout << "hello world" << std::endl; return 0; }
在这段代码当中,我们引入了iostream文件,cout和endl函数在iostream下的std当中,所以需要采用std::cout和std::endl的方法使用功能。
但是如果代码量巨增,这样的写法还是繁琐的,那么这个时候就可以采用using方法了,代码如下:
#includeint main(){ using std::cout; using std::endl; cout << "hello world" << endl; return 0; }
这段代码当中,比上面的代码多了两行using方法,但是如果下面使用cout和endl方法的语句比较多的话,就可以省力很多了。但是上面的写法必须把所有的需要的方法都显式的声明出来,比如:
#includeint main(){ using std::cout; cout << "hello world" << endl; return 0; }
这里声明了cout,但是在使用的过程当中,除了count还使用了endl,那么这个时候是会报错的
main.cpp: In function ‘int main()": main.cpp:5:29: error: ‘endl" was not declared in this scope cout << "hello world" << endl; ^ main.cpp:5:29: note: suggested alternative: In file included from /usr/include/c++/4.8.2/iostream:39:0, from main.cpp:1: /usr/include/c++/4.8.2/ostream:564:5: note: ‘std::endl" endl(basic_ostream<_CharT, _Traits>& __os) ^
那么有没有更加简单的写法,我们可以尝试直接using 整个std
#includeint main(){ using namespace std; cout << "hello world" << endl; return 0; }
那么我们来聊聊using到底是干什么的:
在聊using之前,先搞清楚一个概念,就是命名空间,命名空间是C++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。而作用域就是定义一个量,这个量在代码当中起作用的范围。
那么接下来看using,using是用来声明命名空间的,声明命名空间实际上就是把指定的标识符加载到当前的作用域当中,直接使用。
但是这里有几个思考的点:
1、在学习c++的时候有一类文件叫做头文件,就比如刚才案例当中导入的iostream,在这类文件当中尽量不要使用using,因为来回包括太多隐式的变量,容易导致变量冲突。
2、using声明的一定要是include加载的,所以要卸载include的后面。
3、using写在代码的不同位置,产生的效用也是不一样的,这个需要结合作用域来详细理解(挖个坑,后来填上)
4、个人感觉using std::cout 写法上确实比 using namespace std要繁琐,但是使用的变量更加精确,因为using namespace std调用命名空间std内定义的所有标识符,其实代码当中没有用到那么多。
关于using先总结这么多,更多关于C++ 命名空间using声明的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?