C++-缺省参数
缺省参数
缺省参数也叫默认参数
指的是在函数参数的位置,提前定义一个缺省值(即提前定义一个值),当函数接收到参数时,如果定义缺省值的位置未接收到参数,那么这个位置会自动使用缺省值
通过定义缺省参数的个数可分为以下情况
全缺省
全缺省就是将函数的参数都定义一个缺省值
#include <iostream>
using namespace std;// 全缺省:所有参数都有默认值
void printInfo(string name = "Unknown", int age = 0, string country = "Earth") {cout << "Name: " << name << ", Age: " << age << ", Country: " << country << endl;
}int main() {printInfo(); // 输出:Name: Unknown, Age: 0, Country: EarthprintInfo("Alice"); // 输出:Name: Alice, Age: 0, Country: EarthprintInfo("Bob", 25); // 输出:Name: Bob, Age: 25, Country: EarthprintInfo("Cathy", 30, "Mars"); // 输出:Name: Cathy, Age: 30, Country: Marsreturn 0;
}
半缺省
半缺省就是将函数的参数只定义部分缺省值
#include <iostream>
using namespace std;// 半缺省:length 和 width 必须传递,height 可缺省(默认 10)
double calculateVolume(double length, double width, double height = 10) {return length * width * height;
}int main() {// 必须至少传递前两个参数cout << "Volume 1: " << calculateVolume(2, 3) << endl; // 2*3*10 = 60cout << "Volume 2: " << calculateVolume(2, 3, 5) << endl; // 2*3*5 = 30return 0;
}
缺省值定义规则
从右向左定义
默认参数必须从参数列表的最右侧开始定义,且必须连续向左延伸
不可跳跃:默认参数必须连续设置,不能间隔未设置默认值的参数