子类继承父类后,当创建子类对象,也会调用父类的构造函数
问题:父类和子类的构造和析构顺序是谁先谁后?
- 如果是单继承
```cpp
include
using namespace std; class Person{ public: Person(){
} ~Person(){cout << "Person构造函数的调用" << endl;
} };cout << "Person析构函数的调用" << endl;
class Student:public Person{ public: Student(){ cout << “Student构造函数的调用” << endl; } ~Student(){ cout << “Student析构函数的调用” << endl; } }; int main(){ Student student; return 0; }
会先调用父类的构造函数,然后再调用子类的构造函数<br />**没有父亲,哪里来的儿子**<br />**<br />**<br />**- **如果是多继承**```cpp#include <iostream>using namespace std;class Person{public:Person(){cout << "Person构造函数的调用" << endl;}~Person(){cout << "Person析构函数的调用" << endl;}};class Worker{public:Worker(){cout << "Worker构造函数的调用" << endl;}~Worker(){cout << "Worker析构函数的调用" << endl;}};class Student:public Worker,public Person{public:Student(){cout << "Student构造函数的调用" << endl;}~Student(){cout << "Student析构函数的调用" << endl;}};int main(){Student student;return 0;}

单继承会依据继承顺序,来调用父类的构造函数,比如这里会依次调用Worker, Person和 Student的构造函数
