??????????????????????麯??????????????滻????????????? ???ū??????????麯?????????????????????????????????????????????????

class CFoo {
private:
   int val;
public:
   int GetVal() { return val; }
   int SetVal(int v) { return val=v; }
};

?????????????????д???

CFoo x;
x.SetVal(17);
int y = x.GetVal(); 

?????????????????????????????????????????

CFoo x;
x.val = 17;
int y = x.val;

?????????????????????val?????б??????????????????????ú??????????????????????????

?????麯???ж???????ζ????????????????????????????????????????? GetVal ????????麯???????????е?????????????????? CFoo2??

class CFoo2 : public CFoo {
public:
// virtual in base class too!
virtual int CFoo2::GetVal() { return someOtherVal; }
};

??????? pFoo????? CFoo ?? CFoo2 ???????????? pFoo ???????? CFoo ?? CFoo2????????? pFoo->GetVal ??????ó????

???????????????????????????????????????????????????????????????????????????????

????????????????????????ù???? inline???磺

inline CFoo::GetVal() { return val; }

?????????????????????б?д?????壬?????? CFoo2::GetVal ???????????????麯?????????????????У??磺

class CFoo {
public:
virtual int GetVal() { return val; }
};

?????????????????????? GetVal ???????????????????????????????????????????????????

?????????????????????????????????????飬?????????????á???????????? CFoo ????????pFoo->GetVal ???????????????????????????£?????????? GetVal ??????????????????????????vtable?????????????????????????ζ????????????????????????????????

CFoo x;
x.SetVal(17)
int y = x.GetVal()