为什么要有这玩意

在扩充函数功能时,不用修改之前的调用代码

// 只能花半径为radius的圆,颜色为黑色
void drawCircle(int radius) {
    // draw
}
--- 修改上面的代码而不是重载 ---
// 可以指定颜色,默认color为1,也就是黑色
// 假如有地方是这样调用的drawCircle(1),那么它会相等于drawCircle(1, 1)
void drawCircle(int radius, int color = 1) {
    // draw
}

用法

定义函数的时候可以让最右边的连续若干个参数有缺省值

定义

// 正确
void func( int x1, int x2 = 2, int x3 = 3) {
    
}
// 错误,带缺失值的参数必须放在最右边
void func( int x1, int x2 = 2, int x3) {
    
}

调用

func(10) ; //等效于 func(10,2,3)
func(10,8) ; //等效于 func(10,8,3)
func(10, , 8) ; //不行,中间不能跳过

参考:C++程序设计


熊一帆
96 声望14 粉丝

下一篇 »
C++内联函数