命名空间
iostream
是 C++ 提供的用于输入输出的类和函数库,只有包含这个头文件,才能使用 cin 和 cout 等类,同时也可以使用输入输出函数。
namespace
1.命名空间,指标识符的可见范围。
2.using namespace std;
- 将命名空间 std 的标识符扩展到全局
- 在 iostream 头文件中,并没有定义全局的标识符,如果不讲 std 内的标识符扩展到全局,只能如下使用:
std::cout << b << std::endl;
- 扩展到全局后
cout << b << endl;
3.双冒号前啥都不写,指全局命名空间。
4.命名空间内可再定义命名空间作。
namespace A
{
int a = 1;
namespace B
{
int a = 2;
}
}
int main()
{
cout<< A::a <<endl;
cout<< A::B::a <<endl;
}
基本的输入输出
cin
cin >> b;
从标准输入中赋值变量 b,如果第一次读取没有读到对应类型的输入,则不改变其值。
cout
cout << b;
把 b 按照其类型输入到标准输出。
函数重载
c++编译器在对代码进行编译时,会对函数进行重新命名,
新名称为 _Z + 函数名字符数 + 按顺序参数类型
如 int fun(int n, char c) 的名称为 _Z3funic
故 c++ 支持函数名相同但参数类型或类型顺序不同的函数重载,与返回值无关。
c++缺省参数
c++函数在定义时可以赋默认值,调用时可以对有默认值的参数进行缺省,定义时不能缺省的参数在前(没有赋默认值),能缺省的参数在后,若在可缺省参数后出现不可缺省参数,编译无法通过。
指针和引用
int a = 0;
int& b = a;
可以简单地将 b 理解为 *&a。