《C++primer》第五版笔记:默认实参

具体参考原书P211开始

目录

定义

使用默认实参调用函数

默认实参声明

默认实参初始值

定义

某些函数有这样一种形参,在函数的多次调用中它们都被赋予相同的值,此时,我们把这个反复出现的值称为函数的默认实参。

举个栗子:

typedef string::size_type sz;
string screen(sz ht=24,sz wid=80,char backgrnd=' ');

需要注意的是,一旦某个形参被赋予了默认值,它后面的形参都必须有默认值。

使用默认实参调用函数

如果我们要使用默认实参,只要在调用函数的时候省略该实参就行了。

例如:

string window;
window=screen(66);

函数调用实参按照位置解析,默认实参负责填补调用缺少的尾部实参,例如,我们要覆盖backgrnd的默认值,我们必须为ht和wid提供实参。

默认实参声明

对于函数的声明,通常的习惯是将其放在头文件中,并且每个函数只声明一次,但是多次声明同一个函数也是合法的。不过有一点需要注意,在给定的作用域中一个形参只能被赋予一次默认形参,举个栗子:

//前两个形参没有默认参数
string screen(sz,sz,char=' ');
//不能修改一个已经存在的默认值
string screen(sz,sz,char='*');
//但是可以添加默认实参
string screen(sz=24,sz=80,char);

默认实参初始值

局部变量不能作为默认实参。除此之外,只要表达式的类型能转换成形参所需的类型,该表达式就能作为默认实参:栗子在P212P21

上一篇:Autopep8安装配置


下一篇:6-5 特殊用途语言特性