????C++??“???”??????????????????????????“???”????á???????????????????“???”?????????“???”???Щ??ù???

????????????A ????B ??????????????????B ????????Щ????B ???A ??????

???????????“????????”????????????????????????????β????塣

?????????????B ?б?????A ???????????????????????

??????1???????????B ??A ??“???”??a kind of ??????????B ???A ?????????????Man???????Human?????????к???Boy??????????????????Man ???????Human ????????Boy ???????Man ????????????????£?

class Human
{
????…
};
class Man : public Human
{
????…
};
class Boy : public Man
{
????…
};

??????2???????????A ??B ??“?????”??a part of??????????B ???A ?????????????A??????????????B?????????Eye???????Nose???????Mouth????????Ear???????Head????????????????Head ???????Eye??Nose??Mouth??Ear ??????????????????ɡ???????????£?

class Eye
{
public:
????void Look(void);
};
class Nose
{
public:
????void Smell(void);
};
class Mouth
{
public:
????void Eat(void);
};
class Ear
{
public:
????void Listen(void);
};
// ?????????????????
class Head
{
public:
????void Look(void) { m_eye.Look(); }
????void Smell(void) { m_nose.Smell(); }
????void Eat(void) { m_mouth.Eat(); }
????void Listen(void) { m_ear.Listen(); }
private:
????Eye m_eye;
????Nose m_nose;
????Mouth m_mouth;
Ear m_ear;
};

???????????Head ??Eye??Nose??Mouth??Ear ????????????Head ?????????Look??Smell??Eat??Listen ??Щ?????

// ????????
class Head : public Eye?? public Nose?? public Mouth?? public Ear
{
};

????????????????????????????????????????????????????????????????????“???”????????????????