构造函数的初始化有两种:(一)在构造函数体的赋值语句中设置,(二)在构造函数中使用初始化列表 (一)构造函数体的赋值语句中设置 Student( string s_name = "pzy", string s_sex = "male", int i_age = 20 ) { name = s_name; sex = s_sex; age = i_age; } (二)使用初始化列表 Student(string s_name, s_string sex, int i_age) : name(s_name), sex(s_sex), age(i_age) 其实,这不仅表示法不同,初始化的方式上也有很大的不同,效率也有悬殊。在使用在构造函数体中初始化成员的时候,首先创建该数据成员,再进行赋值语句。而使用初始化列表,数据成员在创建的时候,就用初始值进行了初始化。这要比在构造函数中使用赋值语句效率高得多,特别是在数据成员是一个类实例的时候。