1. ホーム
  2. c++

[解決済み] template <class ItemType>?

2022-02-15 22:22:27

質問

データ構造の課題を終わらせようとしたところ、実装ファイルの中で、いくつかの関数が始まっています。

template <class ItemType>
ClassName<ItemType>::ClassName( )
{
}

ということが明確になりました。

<ItemType> 

は特定の型(String, double, intなど)の置換のためのものです。しかし

template <class ItemType>

関数実装の前に毎回言わなければならないように?

どのように解決するのですか?

それは、そのクラスや関数がテンプレートクラス/関数であることと、テンプレートの引数の名前が何であるかをコンパイラに伝えることです。

通常の関数の引数については、宣言時の名前と定義時の名前は同じである必要はありません。ですから、例えば

template<typename Foo>
struct Bar
{
    void f(int a);
};

template<typename Beer>
void Bar<Beer>::f(int flop)
{
}