以下の設計について教えてください。
template <typename X> class AAA {
private:
X mem1;
};
があった時、
class BBB {
private:
AAA<case1> mem1;
public:
};
class CCC {
private:
AAA<case1> mem1;
AAA<case2> mem2;
};
等のように、AAA をメンバ変数と持つようなクラスを設計したいのですが、変数の数が固定されていません。
どのように設計するのが一番スマートなのでしょうか?思いついたのは、AAAの基底クラスを作って、
BBBでvector<AAA_BASE> *mem として、BBBを定義してから、vector<AAA> mem(2)等 のポインタをBBBに渡す
事なのですが。もっとスマートに出来ないでしょうか?