class SomeType {
int i_;
int j_;
int k_;
public:
SomeType(int i,int j,int k): i_{i},j_{j},k_{k} { cout<<"3\n";}
SomeType(int i,int j ) : SomeType(i,j,0){ cout<<"2\n";}
SomeType(int i) : SomeType(i,0){ cout<<"1\n";}
};
SomeType d(0);
程序输出为:
3
2
1
C++03语法,只能通过一个公共函数,比如随便一个名字Init()函数,来完成公共逻辑。
class SomeType {int i_;int j_;int k_;void Init(int i,int j,int k){ i_=i,j_=j,k_=k; }public:
SomeType(int i,int j,int k) { Init(i,j,k);}SomeType(int i,int j ){ Init(i,j,0); }SomeType(int i){ Init(i,0,0);}};