2

ベクターのテンプレート タイプをテンプレート タイプで定義したい場合はどうなりますか? コンストラクターが type の引数を取ることができるようにテンプレート化されたクラス Customer がありますvector<T>。ここで、Customer 型のグローバルな Vector をインスタンス化して、 と入力したいと考えていますvector<Customer<Customer<Customer<etc<etc>>>>>

これはおそらく初歩的な質問であることは承知していますが、私が自分自身を見つけたこの小さなピクルスについて簡潔に説明したいと思います.

前もって感謝します...

4

1 に答える 1

1

vector特定のタイプの が必要な場合はCustomer、すべてが簡単です。

template < typename T >
class Customer
{
public:
  Customer( std::vector< Customer< T > > vec );
}

std::vector< Customer<CustomerType> > v;

また

std::vector< Customer<CustomerType>* > v;

ただし、Customer テンプレートの別のインスタンスが必要な場合は、クラスの共通ベースを定義し、代わりに保存する以外に方法はありません。

class CustomerBase 
{ 
   /* common functionality */
};

template < typename T > 
class Customer : public CustomerBase
{
}

std::vector< CustomerBase* > v;
v.push_back( Customer< TypeA >() );
v.push_back( Customer< TypeB >() );
于 2013-08-12T00:26:24.800 に答える