inline
函数:可以代替c
中的宏定义#define SQUARE(X) X*X
。宏定义通过文本替换实现
inline double square(double x) {return x*x};
- 引用变量(伪装表示的指针)
int rats =1, next = 2;
int & rodents = rats;
rodents = next; //赋值操作而已
必须在声明引用变量时进行初始化。一旦与某个变量关联,将不能改变关联关系。
void swap(int & a, int & b);
const free_throws & clone2(free_throws n& ft) //需要注意不要返回临时变量
{
...
}
- 默认参数
int harpo(int n, int m=4, int j=5);//只能在原型提供默认值
函数重载:多个同名函数,但是参数列表必须不同。这涉及到函数匹配的问题
函数模板
template <typename T> //template <class T>
void Swap(T a, T b)
{
}
- 显式具体化
void Swap(job&, job &);
template <typename T> //template <class T>
void Swap(T a, T b)
template<> void Swap(job&, job &);