1 class Alpha {
2 public:
3     virtual void getData(int *src, int *dst, int data);
~Alpha()4     virtual ~Alpha() {};
5 private:
6     int mPdata = 0;
7 };
8 
9 class Beta : public Alpha {
10 public:
Beta(int data)11     Beta(int data) : mCdata(data) {}
12     virtual void getData(int *src, int *dst, int data);
~Beta()13     virtual ~Beta() {};
14 private:
15     int mCdata = 1;
16 };
17 
18 class Gamma : public Beta {
19 public:
Gamma(int data)20     Gamma(int data) : mGCdata(data), Beta(data) {}
21     virtual void getData(int *src, int *dst, int data);
~Gamma()22     virtual ~Gamma() {};
23 private:
24     int mGCdata = 2;
25 };
26 
getData(int * src,int * dst,int data)27 void Alpha::getData(int *src, int *dst, int data) {}
28 
getData(int * src,int * dst,int data)29 void Beta::getData(int *src, int *dst, int data) {}
30 
getData(int * src,int * dst,int data)31 void Gamma::getData(int *src, int *dst, int data) {}
32 
33