一:命名空间和域作用限定符
一:概念
在c语言中,如果你变量命名和关键字冲突,那么就会报错。c++中为了避免这种命名冲突问题,就创造了命名空间namespace。
二:定义命名空间
namespace hhh {
// 命名空间中可以定义变量/函数/类型
int aa = 5;
int add(int a, int b) {
return a + b;
}
struct stack {
int capacity;
int size;
};
}
三:使用
一:全部展开
#include<iostream> //c++用的较多的头文件,包含了很多有用的东西
using namespace std; //展开命名空间std
int main() { int a,b;
scanf("%d",&a); //输入a
cin>>b; //输入b
printf("%d\n",100); //输出100
cout << 100 << endl; //输出100
return 0;
}
命名空间就是namespace,因为全部展开了命名空间,所以下面可以直接用cout cin endl(也就是换行)
二:部分展开
using std::cout; //::就是域作用限定符
using std::endl;
int main() {
printf("%d\n", 100);
cout << 100 << endl;
return 0;
}
三:不展开
int main() {
printf("%d\n", 100);
std::cout << 100 << std::endl;
return 0;
}
另外注意:用命名空间里结构体是 struct 命名空间名::结构体名,如struct hhh::stack st;
二:输入输出
上面代码大家已经看到了cout输出cin输入,他们可以自动辨别类型,十分方便。但如果要控制精度,那大家最好用printf这种,因为cout cin控制精度很麻烦。
三:缺省
缺省参数是
声明或定义函数时
为函数的
参数指定一个缺省值
。在调用该函数时,如果没有指定实参,那就采用该形参的缺省值,有指定实参就使用指定的实参。
void p(int a=1, int b = 2, int c = 3) {
cout << a << b << c<<endl;
}
int main() {
p();//123
p(6);//623
p(1, 6);//163
p(4,5,6);//456
return 0;
}
注意:
1. 半缺省(就像上面就int a,不给a缺省值)参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现
感谢你看到这,大家共同进步!