c++函数默认实参和python类似。差别如下
- c++默认实参在函数声明中在指定,并将该声明放在合适的头文件中。并且可以修改。python默认实参在函数定义中实现,且不能修改
- c++函数如果重复声明,每个形参只能被赋予一次默认实参。换句话说,后续的函数声明,只能为之前那些没有默认值的形参添加默认实参,而且该形参的右侧所有形参必须已经在前面的声明中赋予了默认实参。
局部变量不能座位默认实参。除此之外,只要表达式的类型能转换成形参所需的类型,该表达式就能作为默认实参:
sz wd = 80; // 全局变量
char def = ' '; // 全局变量
sz ht(); // 函数声明
// 函数声明,指定默认实参
string screen(st = hz(), sz = wd, char =def);