나는 템플릿 기반 클래스를 사용하는 법을 배우려하고있다. 모든 데이터 형식이 될 수있는 2 개의 숫자를 포함하는 간단한 템플릿 클래스 numbers
을 만들었습니다. 그런 다음 객체의 더 큰 수를 반환하는 메서드를 만들었습니다. 어떤 이유로 링커 오류가 계속 발생합니다 ... 여기에 오류와 코드가 있습니다. 무엇이 잘못되었는지, Visual Studio는 내 코드에서 아무 것도 강조하지 않았습니다. C++ 템플릿 오류?
templated.h
template <class T>
class numbers {
public:
numbers(T x, T y);
T bigger();
private:
T a, b;
};
templated.cpp
#include "templated.h"
#include <iostream>
using namespace std;
template <class T>
numbers<T>::numbers(T x, T y) {
a = x;
b = y;
}
template <class T>
T numbers<T>::bigger() {
return a > b ? a : b;
}
MAIN.CPP
#include <iostream>
#include "templated.h"
using namespace std;
int main() {
numbers <int>pair(1, 2);
cout << pair.bigger() << endl;
return 0;
}
읽는
감사합니다!
오케이, 그래서 함수가 취하는 데이터 유형을 지정하지 않으면 템플릿 클래스 함수 구현을 별도의 파일에 넣을 수 없습니다. 그게 맞습니까? –
사용할 모든 유형의 클래스를 인스턴스화하면 cpp 파일에 템플릿 클래스가 구현됩니다. 함수와 동일합니다. –
오, 템플릿 기반 클래스에 .h 파일을 사용하지 않아야합니까? –