若在逻辑上A是B的“一部分”,则不允许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;
};