設計手法のアドバイスをください。

class Ikimono()

class Tako : public Ikimono {
 static int legs;
}
class Neko : public Ikimono {
 static int legs;
}
int Tako::legs = 8;
int Neko::legs = 4;

こんな感じで派生したクラスでクラスに固有の値を設定しています。
聞きたいことは2つで
・上記より何かもっとうまい設計方法はないだろうか
・Ikimonoの派生クラスではlegsの定義を強要させる仕組みはできるか
アドバイスよろしくお願いします。