C++ 多继承
01_多继承定义.cpp
#include<iostream>
using namespace std;
//父类先构造,子类先析构
struct GrandFather{
int pound=2000000;
GrandFather(){
cout<<"grandfather construction"<<endl;}
GrandFather(int p):pound(p){}
~GrandFather(){
cout<<"grandfather destrucor"<<endl;}
};
struct Father: GrandFather{
int dollor=1000000;
Father(){
cout<<"father construction"<<endl;}
Father(int d):dollor(d){}
~Father(){
cout<<"father destrucor"<<endl;}
};
struct GanFather {
int gold=100;
public:
GanFather(){
cout<<"gan father construction"<<endl;}
GanFather(int g):gold(g){}
~GanFather(){
cout<<"gan father destrucor"<<endl;}
};
struct Son: GanFather,Father{
Son(){
cout<<"Son construction"<<endl;}
~Son(){
cout<<"Son destructor"<<endl;}
};
int main()
{
Son s;
}
02_多继承的悖论.cpp
#include<iostream>
using namespace std;
struct Furniture{
int color;
int size;
int weight;
};
//虚继承
struct Soft:
// virtual
Furniture{
};
struct Bed:
// virtual
Furniture{
};
struct SoftBed:Soft,Bed{
SoftBed(){}
SoftBed(int c,int s, int w)
// :color(c),size(s),weight(w)
{color=c;size=s,weight=w;}
~SoftBed(){}
};
int main()
{
SoftBed s(1,100,200);
cout<<s.weight<<endl;
}