Aimy

c++虚继承

 1 #include <iostream>
 2 
 3 using std::cin;
 4 using std::cout;
 5 using std::endl;
 6 
 7 class Base{
 8 public:
 9     Base(int a):m(a){}
10 private:
11     int m;
12     int m1;
13 };
14 
15 class sub1: public virtual Base
16 {
17 public:
18     sub1(int a): Base(a) {}
19 };
20 
21 class sub2: public virtual Base
22 {
23 public:
24     sub2(int a): Base(a) {}
25 };
26 
27 class Drive: public sub1, public sub2
28 {
29 public:
30     Drive(int a): Base(a), sub1(a), sub2(a) {}
31 };
32 
33 int main(void)
34 {
35     Drive a(2);
36     cout<< sizeof(a) <<endl;
37 
38     system("PAUSE");
39     return 0;
40 }

Base 即为虚基类

通过虚继承可以解决代码冗余重复问题

虚继承会增加一个标记位

posted @ 2012-11-28 18:54  一只小小的菜鸟1  阅读(220)  评论(0编辑  收藏  举报