struct creature { virtual void eat() = 0; };

class cat : public creature {・・・};

↑これはいい
↓これは残念

struct drawable { virtual void draw() = 0; };

class cat : public creature, public drawable {・・・};

正解はdrawableを継承し、メンバにcreatureへのスマートポインタをもったクラスを作り仲介させること

すると開発の際にはクラス間の独立性が高まり、再利用時には不可解なメンバに遭遇し書き直すはめにあうなどといったことが無くなり精神衛生上たいへんよろしい

ただし、速度を優先したいなどの理由があるなら、本来必要無いはずのインタフェースを継承させ持たせてもよい