引用
- 引用在定义时必须初始化
- 一个变量可以有多个引用
- 引用一旦引用一个实体,再不能引用其他实体
int a = 10;
int &ra = a;
cout << "a = " << a <<endl; // a = 10
cout << "ra = " << ra << endl; //ra = 20
函数
●函数重载
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同。
int Max(int a, int b)
{
return a > b ? a : b;
}
char Max(char a, char b)
{
return a > b ? a : b;
}
int main()
{
cout << Max(10, 20) << endl; // 20
cout << Max('A', 'B') << endl;// 'B'
}
●内联函数
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。
inline double square(double x){ return x * x; }
●默认参数
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
void TestFunc(int a = 0)
{
cout << a << endl;
}
int main()
{
TestFunc(); // 没有传参时,使用参数的默认值
TestFunc(10); // 传参时,使用指定的实参
}
命名空间
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。一个命名空间中的名称不会与另外一个命名空间中的相同名称发生冲突同,如下面代码用关键字namespace定义了两个名称空间Jack和Jill:
namespace Jack{
double pail; //变量声明
void fetch(); //函数原型
struct {}; //结构体声明
}
namespace Jill{
double pail; //变量声明
void fetch(); //函数原型
struct {}; //结构体声明
}
using Jill::fetch; //把fetch加入到全局命名空间
int main()
{
Jack::pail = 12.34; //使用变量
Jill::fetch(); //使用函数
}
for
基于范围的for循环(C++11)用于打印数组的元素
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (auto &e : arr)
cout << e << " ";
cout << endl;
}