目录
cpp关键字
命名空间
命名空间的使用
1.加名称及作用域限定符
2.使用using将命名空间中某个成员引入
3.展开命名空间
注意
输入输出
缺省参数
cpp关键字
命名空间
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。
namespace bit {//使用命名空间内的类型,则使用的函数优先为该命名空间内的函数//对命名空间内的变量进行修改不会被销毁int x = 0;int y;int add(int a, int b) {return a + b;}
}
命名空间的使用
1.加名称及作用域限定符
namespace N{int a=1;int b=2;
}
int main()
{printf("%d\n", N::a);return 0;
}
2.使用using将命名空间中某个成员引入
using N::b;
int main()
{printf("%d\n", N::a);printf("%d\n", b);return 0;
}
3.展开命名空间
using namespce N;
int main()
{printf("%d\n", N::a);printf("%d\n", b);Add(10, 20);return 0;
}
注意:展开命名空间只是使得命名空间内的变量可以在全局进行使用而不是将他们变成全局变量,展开后命名空间内的变量作用域仍然是命名空间本身。
4.同名命名空间会进行合并注意
注意
1.使用作用域限定符来使用命名空间中的类型名,那么使用的函数则优先为命名空间中的函数
2.不对命名空间进行展开,使用变量的顺序依次为:局部域,全局域。
对命名空间进行展开,那么使用变量的顺序则为:局部域,全局域,命名空间。
输入输出
cpp兼容c,因此在cpp中可以使用c的绝大多数功能
cpp的头文件 <iostream>包含c绝大多数头文件同时有一些附加内容
cpp的头文件与c不同,cpp可导入c的头文件,同时cpp自身的头文件均不以".h"结尾,例如<iostream>
cpp的输入输出使用cout与 cin
endl为与'\n功能相同,均为换行
cout,cin,endl均在iostream的命名空间std中
相较于scanf与printf,cin与cout可自动识别变量类型完成输入输出
缺省参数
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的缺省值,否则使用指定的实参。
int add1(int a = 10, int b = 20) {//全缺省return a + b;
}
int add2(int a, int b = 10) {//半缺省return a + b;
}
注意:
1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现(如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值)
3. 缺省值必须是常量或者全局变量 4. C语言不支持(编译器不支持)