c++默认参数问题
#include <iostream>#include <string>using namespace std;/******* 书上说如果一个默认参数需要指定一个特定值,则在其之前的所有参数都必须赋值。***** 那样的话,像Display(s3) 等这个的赋值是不对的,但却能正确执行。****/void Display(string s1,string s2="",string s3="");int main(){ string s1 = "a",s2 = "b",s3 = "c"; Display(s1); Display(s1,s2,s3); Display(s3,s1); Display(s2,s3); Display(s3); Display(s2);}void Display(string s1,string s2,string s3){ if(s2 == "" && s3 == "") { cout << s1 << endl; } else if(s3 == "" && s2!= "") { cout << s1 << "," << s2 << endl; } else { cout << s1 << "," << s2 << "," << s3 << endl; }}
Display(s3); // 这个调用的是 Display(s3, "", "")