0

私は C++ のテンプレートについて学んでおり、非常に便利なようです。ただし、 http ://www.cplusplus.com/doc/tutorial/templates/ の一番下にある大規模なマルチファイル プロジェクトでテンプレートを使用する際の問題についてのメモがありました。マルチファイル プロジェクトの制限を強制します: テンプレート クラスまたは関数の実装 (定義) は、その宣言と同じファイルにある必要があります。"

たとえば、Ttypenameで動作する 2D Vector クラス テンプレートを書きたいとします。

    template <class T>
    class Vector {
        T x, y;
    public:
        Vector(T x, T y)
        {
            this->x = x;
            this->y = y;
        }

        void normalize()
        {
            T length = sqrt(x * x + y * y);

            x = x / length;
            y = y / length;
        }
    };

私の質問はかなり単純です。複数の .cpp ファイルがアクセスできるようにするには、このテンプレートをどこに配置しますか? たとえば、他のすべてのカスタム数学関連の宣言を保持する Math.h ファイル内に配置する場合、inlineそれらはヘッダー ファイルにあるため、関数を使用する必要がありますか?

4

1 に答える 1