code/C++
[C++] 다중 상속
shallot
2017. 4. 20. 14:12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include<iostream> #include<string> #pragma warning(disable:4996) using namespace std; class A { int a; public: A(int a) { this->a = a; } void disp() { cout <<"A::"<< a << endl; } }; class B :virtual public A { int b; public: B(int a, int b) :A(a) { this->b = b; } void disp() { cout <<"B::"<< b << endl; } }; class C: public virtual A{ int c; public: C(int a, int c) :A(a) { this->c = c; } void disp() { cout <<"C::"<< c << endl; } }; class D : public B,public C { int d; public: D(int a, int b, int c, int d):B(a,b),C(a,c),A(a){ this->d = d; } void disp() { cout <<"D::"<< d << endl; } }; void main() { D dd(1,2,3,4); dd.disp(); dd.C::disp(); dd.B::disp(); dd.A::disp();//virtual(가상 상속)을 하지 않으면 모호해서 에러가 떠야하는데 안 뜹니다. //높은 버전에서는 에러가 뜨지 않습니다. } |