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;