提出的问题与所谓的重复帖子非常不同,因为我有特定的错误,他们只是问为什么它需要在.h文件中...我已经在头文件中得到它并且我得到了以下错误。
更新了文件,但仍然出现以下错误。
Pair.h
#pragma once
template <class T>
class Pair
{
private:
T theFirst;
T theSecond;
public:
/*Pair(const T& dataOne, const T& dataTwo);*/
Pair(T a, T b) {
theFirst = a;
theSecond = b;
}
T getFirst();
T getSecond();
};
Pair.cpp
#include "stdafx.h"
#include "Pair.h"
template<class T>
T Pair<T>::getFirst()
{
return theFirst;
}
template<class T>
T Pair<T>::getSecond()
{
return theSecond;
}
Main.cpp的
#include "stdafx.h"
#include "Pair.h"
#include <iostream>
using namespace std;
int main()
{
Pair <char> letters('a', 'd');
cout << letters.getFirst();
cout << endl;
system("Pause");
return 0;
}
答案 0 :(得分:1)
您应该将模板类Pair的所有代码放入头文件中。
此外,无需在标头中将方法声明与定义分开。
&#39;配对T ::配对&#39;是错的,因为你在这里不需要T.