默认实参
某些函数有这样一种形参,在函数的多次调用时都会被赋予相同的值,我们把这个反复出现的值可设置为该函数的默认实参。
默认实参作为形参的初始值出现在形参列表,我们可以为一个或多个形参定义默认值,不过需要注意的是,一旦某个形参被赋予了默认值,它后面的所有形参都必须有默认值
例
typedef string::size_type sz;
string screen(sz ht =24,sz wid = 80,char background=' ');
string window;
window=screen();//等价于screen(24,80,'');
window=screen(66);//等价于screen(66,80,'');
window =screen(66,256,'#');
默认实参负责填补函数调用缺少的尾部实参,靠右侧位置,
window =screen( , , '?');//错误,只能省略尾部实参
window =screen('?');//调用screen('?',80,' ');不过与意图不符
当设计含有默认值的函数时,尽量让不怎么使用默认值的形参出现在前面,而让那些经常使用默认值的形参出现在后面。
有一点需要注意,在给定的作用域中一根形参只能被赋予一次默认实参。
通常,应该在函数声明中指定默认实参,并将该声明放在合适的头文件里。