私はテンプレートを書いています。私は、実行するすべてのチュートリアルで実装されている各関数の上にテンプレートを宣言していることに気付きました。これが理由であれば、私は興味があります。もし周りに道があり、それがどのように役に立つのであれば。テンプレート内の各関数の上にテンプレートを宣言する必要があるのはなぜですか?
例:いくつかのファイルの中で(我々はそれをtemplate.h呼びます):それは テンプレートの種類とは何の関係も持っていない場合
template <class T> class MyClass
{
public:
MyClass(T parameter);
T getParameter() const;
void setParameter();
void doSomethingUseless() const;
private:
T mParameter;
}
template<class T>
MyClass<T>::MyClass(T parameter):mParameter{parameter}
{}
template<class T>
T MyClass<T>::getParameter() const
{
return mParameter;
}
template<class T>
void MyClass<T>::setParameter(T parameter)
{
mParameter = parameter;
}
template<class T>
void MyClass<T>::doSomethingUseless() const
{
for (int i = 0; i < 10000; i++)
}
- は、なぜ、すべての機能をテンプレート化しなければなりませんか? (doSomethingUselessメソッドなど)
template<class T>
とMyClass<T>
はどちらもこの機能の上でコンパイルする必要がありますか?- これに間違って近づいていますか/これを行う簡単な方法はありますか?
とにかく、ありがとう。メモとして、私は上記の例をコンパイルしませんでした。私は書いた別のテンプレートクラスを一般化しました(そこに多忙な機能はありません)。間違いがある場合は、お詫びします。
クラスと関数の両方に独自のテンプレート引数があるまで待ちます:) – SergeyA