派生类对3类构造函数的调用顺序:
第一:先调用基类的构造函数
第二:调用子对象的构造函数、
第三:调用派生类的构造函数
调用析构函数的顺序与调用构造函数的顺序正好相反
#include <iostream>
using namespace std;class Shape{
public:
void Draw() {cout<<"Base::Draw()"<<endl;}
void Clean() {cout<<"Base::Clean()"<<endl;}
Shape() {Draw();}
~Shape() {Clean();}
};
class Polygon:public Shape{
public:
Polygon() {Draw();}
void Draw() {cout<<"Polygon::Draw()"<<endl;}
void Clean() {cout<<"Polygon Clean()"<<endl;}
~Polygon() {Clean();}
};
class Rectangle:public Polygon{
public:
Rectangle() {Draw();}
void Draw() {cout<<"Rectangle::Draw()"<<endl;}
void Clean() {cout<<"Rectangle Clean()"<<endl;}
~Rectangle() {Clean();}
};
class Square:public Rectangle{
public:
Square() {Draw();}
void Draw() {cout<<"Square::Draw()"<<endl;}
void Clean() {cout<<"Square Clean()"<<endl;}
~Square() {Clean();}
};
int main(){
Polygon c;
Rectangle s;
Square t;
cout<<"------------------------------------------"<<endl;
return 0;