- 子类的构造函数默认会调用父类的无参构造函数
- 如果子类的构造函数显式的调用了父类的有参构造函数,就不会再去默认调用父类的无参构造函数
- 如果父类缺少无参构造函数,子类的构造函数必须显式调用父类的有参构造函数
#include<iostream>
using namespace std;
class Person{
int m_age;
public:
Person(int age) :m_age(age) {}
};
class Student :Person{
int m_no;
public:
//子类的构造函数调用父类的构造函数,去初始化父类的成员变量
Student(int age, int no) :m_no(no), Person(age) {}
};
int main() {
Student student(18, 20);
getchar();
return 0;
}
构造函数和析构函数的调用顺序:
先构造的后析构,后构造的先析构 !