템플릿을 사용하는 방법을 배우기 위해 템플릿을 사용하는 예를 만들려고합니다.이 템플릿 예제 코드가 컴파일되지 않는 이유는 무엇입니까?
Controller.cpp :
#include <iostream>
#include "Foo.h"
using namespace std;
int main(){
Example<int,string> example;
example.appols(5, "Hi");
return 0;
}
Foo.h :
#include <iostream>
using namespace std;
template <class T, class E>
class Foo{
public:
void printThis(T t, E e);
};
template <class T, class E>
class Example{
public:
void appols(T t, E e);
};
Foo.ipp : 나는 3 개 파일을 비주얼 스튜디오 2010 C++에서 프로젝트를 만든
#include <iostream>
#include "Foo.h"
using namespace std;
template<class T, class E>
void Foo<T, E>::printThis(T t, E e){
cout << "FOO! " << t << ' ' << e << endl;
}
template<class T, class E>
void Example<T, E>::appols(T t, E e){
cout << "APPOLS!! " << t << ' ' << e << endl;
Foo<T,E> f;
f.printThis(t,e);
}
컴파일하려고하면 다음과 같이 나타납니다.
1>------ Build started: Project: Template Practive, Configuration: Debug Win32 ------
1>Controller.obj : error LNK2019: unresolved external symbol "public: void __thiscall Example<int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::appols(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" ([email protected][email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function _main
1>C:\Users\Matthew\documents\visual studio 2010\Projects\Template Practive\Debug\Template Practive.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
여기서 내가 잘못한 부분을 볼 수 있도록 도와 주시겠습니까? error LNK2019
은 어디에서 왔습니까? 미리 감사드립니다.
클래스 정의 뒤에'Foo.h'에'Foo.ipp'를 포함시켜야합니다. – juanchopanza