C++11 委托构造
委托构造的使用方法类似成员列表初始化的变种; 注意: 如果在一个构造函数中使用了本类的委托构造,就不能再对成员使用列表初始化了; 会先执行委托构造函数的函数体,然后再执行本身的函数体; 虽然可以在构造函数中调用其他的构造函数,但已经被初始化的成员变量还会被当前的构造函数进行重置,有可能导致又变为原来的未初始化状态; class Test{ public: Test():Test(0, 0.1){ s = "Ah"; cout << "Test()\n"; } Test(int ii):Test(ii, 0.1, "Hi"){ cout << "Test(int)\n"; } Test(int ii, double dd):Test(ii, dd, "Hi"){ cout << "Test(int, double)\n"; } Test(int ii, double dd, string ss):i(ii), d(dd), s(ss){ cout << "Test(int, double, string)\n"; } void print(){ cout << "i = " << i << "\td = " << d << "\ts = " << s << endl; } private: int i; double d; string s; }; int main() { Test t(10); t....