C++语言重要语法之头文件和命名空间| 8月更文挑战

头文件和命名空间

C++头文件

C++语言中使用头文件保存程序中用到的声明,例如,函数声明,常量定义等。
代码示例:ios

1 #include <iostream> 
2 #include <string> 
3 using namespace std; 
4 int main(){ 
5     string name; 
6     cout<<"输入你的名字"<<endl; 
7     cin>>name; 
8     cout<<"Hello "<<name<<endl; 
9     return 0; 
}
复制代码

上述程序第1行使用# include指令包含了头文件iostreamo。iostream是c++的标准输入输出流。
注意点:c++

  1. 当在程序中使用cin或cout时,必须在程序的最前面包含这个流。若是还要使用其余的内容,那么须要包含其余的头文件。上述程序中用到了字符串,因此在第2行包含了头文件字符串。
  2. 每条# include指令仅能够包含一个头文件,若是须要包含多个头文件,则须要使用多条# include指令。
  3. 在c++中,头文件再也不以“.h”结尾,例如,上述程序中使用的头文件是iostream和字符串。以”.h“结尾的头文件是C语言中经常使用的头文件。

经常使用的头文件有如下这些:程序员

  1. 标准输入输出流:;
  2. 标准文件流(文件处理函数):;
  3. 标准字符串处理函数(包含经常使用的字符串处理函数):;
  4. 标准数学函数(包含常见数学公式):。

除了可使用系统提供的头文件外,咱们还能够定义本身的头文件,并在程序中使用# include指令将其包含进来。 默认规则(使用C++语言的程序员都遵循的规则):
一般,使用尖括号括住系统提供的头文件,使用双引号括住咱们本身定义的头文件。markdown

尖括号头文件编译寻找路径

当使用尖括号时,c++编译器将首先在c++系统设定的目录中寻找要包含的文件,若是没有找的到,再到指令中指定的目录中去查找。函数

双引号头文件编译寻找路径

采用双引号时,c++编译器在用户当前目录下或指令中指定的目录下寻找要包含的文件,例如,要包含ridingroad用户家目录下的头文件custom.h,相应的语句以下:spa

#include "/home/ridingroad/custom.h"
复制代码

命名空间namespace

有Python基础的话,理解C++中的命名空间就像和Python的包的概念同样。为了不不一样包里面的命名冲突。一个大型的程序一般由不一样的模块构成,各个模块有多是由不一样的程序员开发的。不一样模块中出现的标识符之间有可能发生重名现象,这就会引起错误。C++中为了不名字冲突,特别引入了“命名空间”的定义,即namespace。目的:命名空间的做用是为了消除同众引发的歧义。code

上面程序第3行"using namespace std;",表示使用命名空间std。按照Python的理解的话,就是导入std这个包,而且是相似于:orm

from std import *
复制代码

一个大型的程序一般由不一样的模块构成,各个模块有多是由不一样的程序员开发的。不 同模块中出现的标识符之间有可能发生重名现象,这就会引起错误。C中为了不名字 (义冲究 特别引入了“命名空间”的定义,即namespace。命名空间的做用是为了消除同众 引发的歧义。ci

命名空间使用方法

方法1:开发

命名空间名::标识符名
复制代码

例如:

stad::cin std::cout std::endl
复制代码

using语句有两种形式:

using 命名空间名::标识符;  相似于Python的 from xxx import yy
using namespace命名空间名; 相似于Python的 from xxx import *
复制代码

前一种形式表示,能够在本文件中直接使用该标识符; 后一种形式表示,能够在本文件 中直接使用指定命名空间内的全部标识符。

相关文章
相关标签/搜索