继承中的对象模型
类在C++编译器的内部可以理解为结构体
子类是由父类成员叠加子类新成员得到的
#include <iostream>
using namespace std;
class Parent
{
public:
Parent(int a,int b)
{
this->a = a;
this->b = b;
cout<<"Parent"<<endl;
}
~Parent()
{
cout<<"Parent析构函数"<<endl;
}
void print()
{
cout<<endl;
}
protected:
private:
int a;
int b;
};
class Child :public Parent
{
public:
Child(int a,int b):Parent(1,2)
{
this->x = a;
this->y = b;
cout<<"Child"<<endl;
}
~Child()
{
cout<<"Child析构函数"<<endl;
}
protected:
private:
int x;
int y;
};
void display()
{
Child c(1,2);
}
int main()
{
display();
system("pause");
return 0;
}
继承中的构造析构调用原则
1、子类对象在创建时会首先调用父类的构造函数(子类构造函数初始化列表)
2、父类构造函数执行结束后,执行子类的构造函数
3、当父类的构造函数有参数时,需要在子类的初始化列表中显示调用
4、析构函数调用的先后顺序与构造函数相反