可以说我有类Date
和类Year
,Month
和Day
.
struct Date {
Date(Year year, Month month, Day day) : d(day), m(month), y(year) {};
Date(Month month, Day day, Year year) : d(day), m(month), y(year) {};
Date(Day day, Month month, Year year) : d(day), m(month), y(year) {};
Date(Day day, Year year, Month month) : d(day), m(month), y(year) {};
...
...
private:
Day d;
Month m;
Year y;
}
Run Code Online (Sandbox Code Playgroud)
这允许我没有特定的参数布局,Date
因为我有很多过载.
我能自动生成所有排列/过载吗?
只是要清楚:
我前段时间正在阅读C++ 11标准草案并遇到过这个草案(见§8.3.6,第204页):
void g(int = 0, ...); // OK, ellipsis is not a parameter so it can follow
// a parameter with a default argument
void f(int, int);
void f(int, int = 7);
void h() {
f(3); // OK, calls f(3, 7)
void f(int = 1, int); // error: does not use default
// from surrounding scope
}
void m() {
void f(int, int); // has no defaults
f(4); // error: wrong number of arguments
void …
Run Code Online (Sandbox Code Playgroud)