代码1
#include <iostream>
using namespace std;
class A{
public:
A(int _a):ma(_a){
cout<<"A()"<<endl;
}
~A(){
cout<<"~A()"<<endl;
}
protected:
int ma;
};
class B : public A{
public:
B(int _b):A(_b),mb(_b){
cout<<"B()"<<endl;
}
~B(){
cout<<"~B()"<<endl;
}
protected:
int mb;
};
class C : public A{
public:
C(int _c):A(_c),mc(_c){
cout<<"C()"<<endl;
}
~C(){
cout<<"~C()"<<endl;
}
protected:
int mc;
};
class D : public B, C{
public:
D(int _d):B(_d),C(_d),md(_d){
cout<<"D()"<<endl;
}
~D(){
cout<<"~D()"<<endl;
}
protected:
int md;
};
int main(){
D d(100);
return 0;
}
//代码执行顺序
A()
B()
A()
C()
D()
~D()
~C()
~A()
~B()
~A()
D的内存结构
原文作者:Hello_Bugs
原文地址: https://www.cnblogs.com/erichome/p/16936667.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。