委托构造函数:一个构造函数使用类中其他构造函数完成数据成员的初始化,其本身则称为委托构造函数。
例子:
#include <iostream>
#include <string>
using namespace std;
class Student{
public:
// 非委托构造函数
Student(string name, int age, string sex,int grade):name(name),age(age),sex(sex),grade(grade){}
// 委托构造函数
Student():Student("unknown",0,"male",0){}
// 委托构造函数
Student(string name):Student(name, 18, "male", 60){}
void print(){
cout << name << " " << age << " " << sex << " " << grade << endl;
}
private:
string name; // 姓名
int age; // 年龄
string sex; // 性别
int grade; // 分数
};
int main(void)
{
Student s1("hh",14,"male",88);
s1.print();
Student s2("ppp");
s2.print();
Student s3;
s3.print();
return 0;
}
执行顺序:先执行受委托构造函数的参数列表,再执行受委托构造函数的函数体,最后执行委托构造函数的函数体。