myclass继承了base1和base2
/* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #ifndef BASE0_H #define BASE0_H class base0{ public: int x; base0(int); }; #endif /* base1和base2都继承 base0 */ /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include "base0.h" base0::base0(int x) { this->x = x; } /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #ifndef BASE1_H #define BASE1_H #include "base0.h" class base1 :public base0 { public: base1(int); //继承 }; #endif /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include "base1.h" base1::base1(int x) :base0(x) { //构造函数 } /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #ifndef BASE2_H #define BASE2_H #include"base0.h" class base2 :public base0 { public: base2(int); //继承 }; #endif /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include"base2.h" base2::base2(int x) :base0(x) { //构造函数 } /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include "base1.h" #include "base2.h" class myclass :public base1, public base2 { //同时继承两个类 //但是他们 有共同基类 public: myclass(int); }; /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include "myclass.h" myclass::myclass(int x) :base1(x), base2(x) { //多继承 //构造函数 } /* 软件作者:邱于涵 时间:2015年2月21日18:55:54 */ #include #include "myclass.h" using namespace std; int main(){ myclass *p = new myclass(12); cout << p->base1::x << endl; ////////////////////// //base0 *q = p; //多继承有两个base0基类 二义性错误 base0 *q = (base1*)p; cout << q->x << endl; cin.get(); }