問題の解決策をインターネットで探していますが、私のような質問の例は見つかりませんでした (私が認識しています)。
テンプレート クラスの単純なコンストラクターを作成しようとしていますが、テスト時に同じコンパイル エラーが発生し続けるため、構文または実装に何か問題があるはずです。引数なしでオブジェクトを作成すると、正常にコンパイルされるため、引数を渡す方法と関係があるようです (引数を取らないコンストラクターがないため、これは奇妙に思えます)。
vecxd.hpp:
#ifndef JF_VecXd
#define JF_VecXd
template <class T>
class VecXd : public VecXd<T>{
public:
VecXd(T a, T b, T c);
private:
T x, y, z;
};
template <class T>
VecXd<T>::VecXd(T a, T b, T c){
x = a;
y = b;
z = c;
}
#endif
test.cpp:
#include "vecxd.hpp"
int main(){
int a = 3, b = 4, c = 5;
VecXd<int> tVec(a,b,c);
return 0;
}
エラー:
3 vecxd.hpp 未定義の型「class VecXd」の無効な使用
しかし、引数なしでオブジェクトを作成すると、次のようにコンパイルされます。
int a = 1, b = 2, c = 3;
VecXd<int> tVec();
//Instead of this: VecXd<int> tVec(a, b, c)
お時間を割いていただき、ありがとうございました。この件に関して何かアドバイスをいただければ幸いです。