栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++学习笔记1——头文件与名称空间std

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++学习笔记1——头文件与名称空间std

头文件类型约定示例说明
C++旧式风格.h结尾iostream.hC++程序可以使用
C旧式风格.h结尾math.hC、C++程序可以使用
C++新式风格没有拓展名(真棒iostreamC++程序可以使用,注意需要加using namespace std
转换后的C加上前缀c,没有拓展名cmathC++程序可以使用,可以使用不是C的特性,如namespace std
接下来了解using namespace std是什么

先说namespace

using namespace std是一种编译指令

namespace是名称空间,而std就是名称空间的一种

名称空间支持是一项C++特性,旨在编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,它还有助于组织程序

潜在问题是,两个封装好的产品,可能都包含同名函数,而名称空间就可以将产品封装在一个叫做名称空间的单元中,这样既可以用名称空间的名称来指出使用哪个厂商的产品

例如,如果两个封装好的产品都包括wanda()函数,M公司的产品和P公司的产品如何区分呢?他们会利用名称空间定义

 M::wanda()
 P::wanda()

这样程序就可以利用名称空间来区分不同版本

现在来了解std

函数、类等,都作为C++编译器的标准组件被放置在名称空间std中(当头文件拓展名内没有.h的时候,情况才是如此

这意味着iostream中定义的cout变量其实是std::cout,endl是endl::std

因此虽然程序中cout,cin等变量是赤裸裸的,但是我们应该知道,它的全名是std::cout

 std::cout;//使用std名称空间下的cout,而不是直接使用cout
 std::endl;//同理

但是这样做很麻烦不是吗?

因此using应运而生,using namespace std编译指令就表示,可以使用std名称空间中定义的名称,而不必使用std前缀

这是一个偷懒的做法,在大型项目中还是应该老老实实的进行名称空间定义下的变量

不过!!

如果我们又想偷懒,又不会影响大型项目中其他变量,那怎么办呢

还有一个更好的做法,即指定需要的变量

很难理解对吧,举个例子

比如std和stm空间下的cout,我只需要std空间下的,但是我直接using namespace std就会让整个std空间下的变量都可以简写,怎么办呢?

那么我就可以通过下列编译指令来指定声明某一个名称空间下的某一个变量,而不是声明某一个名称空间下整体的变量

 using std::cout;
 using std::endl;
 using std::cin;     

这相当于对std名称空间定义下的cout,endl,cin变量进行了一个using声明,这样便可以直接使用cin和cout等,而不用加上std::前缀

想要增删也很方便,直接多声明几个或者删去某个变量的声明即可,十分方便

暂且了解到此,此篇笔记对于现阶段数据结构算法程序编写的意义不大,仅仅用于好奇心

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号