本文共 2589 字,大约阅读时间需要 8 分钟。
C++中采用单一的全局变量命名空间,在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。命名空间是为了解决C++中的变量、函数的命名冲突而引入的一种机制,主要思路是将变量定义在不同名字的命名空间中。
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{}中即为命名空间的成员。
namespace N1 //N1为命名空间的名字{//{}内就是命名空间的成员 int a; int add(int left, int right) { return left + right; }}
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
1.加命名空间名称及作用域限定符
2.使用using将命令空间中成员引入
3.使用using namespace 命名空间名称引入
注意:using指令的作用域。using namespace 只在其被声明的语句块内有效(语句块指在一对花括号{}内的一组指令)。
int main(){ { //块1 using namespace name_1; name_1::print(); //调用name_1空间中的print() } { //块2 using namespace name_2; name_2::print(); //调用name_2空间中的print() } return 0;}
C++ 标准库提供了一组丰富的输入/输出功能,C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。
预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的。
C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。
流插入运算符 << 在一个语句中可以多次使用,如下面实例中所示,endl 用于在行末添加一个换行符。
预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符 >> 结合使用的。
//使用cout输出和cin输入时,必须包含< iostream >头文件#include#include using namespace std;//std标准命名空间,cout和cin包含在std标准命名空间中,使用时必须包含该命名空间int main(){ int a; int b; char c; cin >> a; cin >> b >> c;//输入 cout << a << endl;//输出 cout << b << " " << c << endl; system("pause"); return 0;}
说明:C++使用cout进行输出(到控制台),使用cin进行输入(来源自控制台),C的方式可继续使用;
. 使用C++输入输出更方便,不需增加数据格式控制,比如:整形--%d,字符--%。
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认 值,否则使用指定的实参。
#include#include using namespace std;int add(int left=12, int right=15){ return left + right;}int main(){ int ret=add();//没有传参时使用默认值 cout << ret << endl;//27 system("pause"); return 0;}
int add(int left=12, int right=15){ return left + right;}int main(){ int ret=add(10);//25,left=10,right=15;右边缺省。 //int ret = add(10,20);//30 cout << ret << endl; system("pause"); return 0;}
//eg:int fun(int i,int j=5,int k);//错误,k未使用
当声明与定义分离时,只能在声明中出现,如下示例:
//text.h,在声明中出现缺省int Add(int a , int b = 10);//text.cppint Add(int a , int b){ return a+b;}
当声明与定义一体时,在定义中出现
//只有text.cppint Add(int a , int b = 10){ return a+b;}
void fun(); //C语言中: 表示可以接受任意多个参数 所以一般写成void fun(void) //C++语言当中:表示不接受任的参数.(没有参数,编译器会报错)
C++对于函数参数检测更加严格,如何函数没有参数则不能接受任何参数