????????derived????????base?????????base::init()????????????????????????????????????????????????"*this?????base??????????????????????????????????????????????????????????б????

??????ν?????????????????????????????????????


1 class derived:public base
2 {
3     public:
4         derived(int x??int y):base(x??y){}
5         void init()
6         {
7             //static_cast<base>(*this).init();
8             base::init();
9         }
10 };


???????н?????


in base a value is 5
in base b value is 5
a value is 5
b value is 5


???????????????????????dynamic_case?????????????????μ???????????????????й???????????????????????dynamic_cast?????????


1 class derived:public base
2 {
3     public:
4         derived(int x??int y):base(x??y){}
5         void init()
6         {
7             //static_cast<base>(*this).init();
8             //base::init();
9             dynamic_cast<base*>(this)->init();
10         }
11 };


???????н?????

?????δ??? (?????洢??????????)

??????????????????????й??????????????????dynaic_cast????????ж????ε?strcmp???????????????е???????????????????dynamic_cast?????????derived class????????? derived class?????????????????????????base???????????????????????????????????