命名空间 namespace
namespace的定义
定义命名空间的时候我们需要使用namespace关键字,其后面跟你定义的名字,在命名空间的成员在“{}”内。
namespace的本质就是定义一个域。
namespace的定义只能在全局中,它也可以嵌套定义。
如果不同文件中有相同名字的namespace,系统会默认将他们合并。
C++标准库都放在一个叫做std的命名空间中。(所以有我们常见的using namespace std展开std命名空间)。
域的概念
C++中有函数局部域,命名空间域,全局域,类域;域就相当于一堵墙,不同的域通过中国墙相互独立,相互隔离。其中局部域和全局域中的变量也会因为所在域的不同有不同的生命周期,命名空间域和类域中不会影响变量的生命周期。
命名空间的使用
我们编译查找一个变量时,系统只会默认为在局部或者全局域中寻找,不会到命名空间中寻找,所以在我们要使用命名空间中的成员时,通常有以下三种方式。
指定命名空间访问
using展开命名空间中某个成员,对于经常访问且不存在冲突的成员会用这种方法。
展开命名空间中的全部成员,不推荐,冲突风险很大。
C++的输入和输出
在刚学c++的时候我们一定都见过的第一个代码就是 cout << i << endl;
关于这行代码就是关于到c++的输出,不同于c语言,在c++中我们在使用cout或者cin时,必须包含c++的标准库<iostream>,cout就是标准库里osteam的对象,endl是标准库里的函数,他在这里的作用就是换行,了解了cout之后,cin就是一个标准输入流,cin就是标准库里isteam的对象他的作用输入内容到你的程序中,cout与<<(流插入运算符搭配使用),cin与>>(流提取运算符搭配使用),他们两个的作用相当于c语言中的printf和scanf,但是不同的是c++中的输入和输出是可以自动识别变量的类型,所以使用起来更加方便。更重要的是他们支出自定义类型的输入和输出,尤为关键。
缺省参数
是在声明一个函数时为函数指定的一个缺省值(缺省参数不必放在函数的定义体中,在以后修改函数的缺省值的时候修改函数声明更加方便)。在调用函数时如果没有传递这个函数的实参,则形参采用该函数的缺省值,缺省参数也分为全缺省和半缺省。
全缺省就是全部的形参都给缺省值。半缺省就是有一部分函数的形参给缺省值。c++规定函数的缺省值必须从右往左依次缺省,不可以间隔给缺省值。
c++规定函数调用时函数必须从左往右依次给实参,不能跳跃间隔给实参。
c++规定在函数声明和定义的分离时,缺省函数的声明和定义不可以同时出现,规定函数声明的时候给缺省值。
函数重载
同一作用域的同名函数,但是这些同名函数的形参不同,具体表现为参数的个数顺序或者类型不同。返回值的不同不能构成函数重载。这样就表现出了c++函数调用的多态行为,调用会更加灵活。c语言中是不支持这一种用法的。例如当我们想实现一个加法运算既可以用浮点型又可以用整型时,就可以用到我们的函数重载。
以上便是我学到的c++入门介绍的第一节,后面会持续更新谢谢支持。