C、テンプレートクラスを呼び出すために失敗:は私が(.HPPファイルを提供する)のようなテンプレートクラスを定義しました++
#ifndef PERSOANLVEC_H_
#define PERSOANLVEC_H_
#include <vector>
using namespace std;
template<class T, class PrnT> class PersoanlVec {
public:
PersoanlVec();
~PersoanlVec();
void push_back(T t);
void erase(int index);
PersoanlVec& operator[](int index);
const PersoanlVec& operator[](int index) const;
void print() const;
size_t size();
private:
vector<T> _vector;
};
#endif /* PERSOANLVEC_H_ */
は今、すべてがこのクラスで[OK]をコンパイルします。私はそれを使用しようとすると undefined reference to PersoanlVec<Person, Person>::PersoanlVec()'
を取得します。
#include "Person.h"
#include "PersoanlVec.hpp"
#include <cstdlib>
int main(void)
{
Person p1("yotam");
Person p2("yaara");
PersoanlVec<Person,Person> *a = new PersoanlVec<Person,Person>(); //<---ERROR HERE
return EXIT_SUCCESS;
}
これは明らかに私のために非常に明確な、テンプレートと私の最初の試みであるそのない:私はそれを呼び出すのはここ です。パラメータのないコンストラクタはありますか? ありがとう!
うわー、私はこれほど多くの一貫したスペルミスを見たことがありません。 – Puppy
どこに 'PersoanlVec'の実装がありますか? (btw、それは 'PersonalVec'を意図したのですか?) –
@DeadMG:ヘルパーのコーディングは二重です –