1. ホーム
  2. c++

[解決済み] クラス内にテンプレート関数を作成する方法は?(C++)

2022-04-25 05:31:11

質問

テンプレート機能を作ることが可能なのは知っています。

template<typename T>
void DoSomeThing(T x){}

で、テンプレートクラスを作ることが可能です。

template<typename T>
class Object
{
public:
    int x;
};

が、テンプレート内ではないクラスを作り、そのクラス内の関数をテンプレートにすることは可能でしょうか?例えば

//I have no idea if this is right, this is just how I think it would look
class Object
{
public:
    template<class T>
    void DoX(){}
};

あるいは、クラスはテンプレートの一部ではないが、関数はそうであるというような程度でしょうか?

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

あなたの推測は正しいです。 ただひとつ覚えておかなければならないのは、メンバー関数のテンプレートである 定義 (宣言に加えて)ヘッダーファイルにあるべきで、cppにはない。 ではなく は、クラス宣言の本文そのものでなければなりません。