目录
一、命名空间
对标识符的名称进行本地化,以避免命名冲突
1.命名空间定义
namespace N
{
int a = 0;
int b = 0;
}
2.命名空间使用
一个命名空间定义一个新的作用域
①加命名空间名称及作用域限定符
printf("%d\n", N::a);
②使用 using 将命名空间中某个成员引入
using N::b;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
return 0;
}
③使用 using namespace 命名空间名称引入
using namespace N;
int main()
{
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
二、C++ 输入 & 输出
using namespace std;
#include<iostream>
std 是 C++ 标准库的命名空间,里面是 C++ 标准库的定义和实现
使用 cout 和 cin 时须包含 <iostream> 头文件
三、缺省参数
全缺省
void func(int a = 0, int b = 0);
半缺省
void func(int a, int b = 0);
半缺省参数只能从右往左依次给出
四、函数重载
形参列表不同构成函数重载
①参数类型不同
void func(int a);
void func(double a);
②参数个数不同
void func(int a);
void func(int a, int b);
③参数类型顺序不同
void func(int a, double b);
void func(double a, int b);
五、引用
变量的别名,与变量使用同一空间
int a = 0;
int& ra = a;
六、内联函数
以 inline 修饰的函数,在编译时展开,提升程序运行效率
inline void func(int a);
七、auto关键字
类型声明的占位符,编译时替换为实际类型
auto a = 0;
八、范围 for
int arr[3] = { 1, 2, 3 };
for (auto e : arr)
{
cout << e << " ";
}
九、nullptr
表示指针空值
int* p = nullptr;