c

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 2e5+100;
 4 class Base
 5 {
 6 public:
 7     Base();
 8     Base(int a);
 9     Base(const Base& other);
10     Base& operator = ( const Base &other);
11     Base(Base &&other);
12     Base& operator = (Base&& other);
13     ~Base();
14 protected:
15     int getMemberB()
16     {
17         return memberB;
18     }
19     int deleteC(int a,int b = 100,bool test = true);
20 private:
21     int memberA;
22     int memberB;
23     static const int size = 512;
24     int *pMemberC;
25 };
26 class VirtualBase
27 {
28 public:
29     VirtualBase() = default;
30     virtual ~VirtualBase()
31     {
32         cout<<"in virtialBase:~VirtualBase"<<endl;
33     }
34     virtual void test1(bool test)
35     {
36         cout<<"in virtualBase:testBase1"<<endl;
37     }
38     virtual void test2(int x,int y)=0;
39     void test3(){
40     cout<<"in virtualBase:test3"<<endl;
41     }
42     int vbx;
43     int vby;
44 };
45 class Derived : private Base,public VirtualBase
46 {
47 public:
48     Derived(int x,int y):
49         Base(x),VirtualBase(),mY(y)
50     {
51     };
52     virtual ~Derived()
53     {
54         cout<<"in Derived:~Derived"<<endl;
55     }
56 public:
57     void test1(bool test)override
58     {
59         cout<<"in Derived::test1"<<endl;
60     }
61     void test2(int x,int y) override
62     {
63         cout<<"in Derived::test2"<<endl;
64     }
65     void test3()
66     {
67         cout<<"in Derived::test3"<<endl;
68     }
69 private:
70     int mY;
71 };
72 int main()
73 {
74     Derived d(1,1);
75     cout<<"reference test ============"<<endl;
76     VirtualBase& vb = d;
77     vb.test1(true);
78     vb.test2(0,-1);
79    vb.test3();
80     d.test3();
81 //    cout<<"pointer test ============="<<endl;
82 //    VirtualBase* pvb= new Derived (1,2);
83 //    pvb->test1(false);
84 //    pvb->test2(-1,0);
85 //    pvb->test3();
86 //    delete pvb;
87     return 0;
88 }

 

posted @ 2019-06-29 22:01  Let_Life_Stop  阅读(145)  评论(0编辑  收藏  举报