class Student {
public:
int id;
Student() { // 默认(无参)构造函数
id = 0;
}
Student(int _id) { // 有参构造函数
id = _id;
}
Student(const Student& s) { //拷贝构造函数
id = s.id;
}
}
当然,也可以这么写,只是把赋值的过程挪到了上面:
class Student {
public:
int id;
Student() : id(0) { // 默认
cout << "Student() : id(0)" << endl;
}
Student(int _id) : id(_id) { // 有参
cout << "Student(int _id) : id(_id)" << endl;
}
Student(const Student& s) : id(s.id) { // 拷贝
cout << "Student(const Student& s) : id(s.id)" << endl;
}
};
使用上述三种构造函数初始化对象的7种方法:
// 默认构造函数
Student s;
Student s = Student();
// 有参构造函数
Student s(1);
Student s = Student(1);
// 拷贝构造函数
Student s(s1);
Student s = Student(s1);
Student s = s1;