템플릿 사용하고난후 링크에러가 나옵니다

bghunter의 이미지

책에 나온대로 했는데도 에러나 나네요..

왜그런지 알고싶습니다

File attachments: 
첨부파일 크기
Package icon Queen-temp.zip110.77 KB
mrchu의 이미지

저도 템플릿을 잘 알지는 못하지만..
템플릿은 확장을 해야되기 때문에, 멤버 함수들을 전부 헤더파일에 넣어야 하는것 아닌가요?

올려주신 파일에 stack.cpp의 내용을 전부 stack.h로 옮긴후에, stack.cpp를 제거하고 컴파일하니 컴파일이 되는군요.

더 잘 아시는 분이 답변 해 주시길..

추신 템플릿 선언과, 템플릿 구현을 별도의 파일에 놓으려면, export라는 키워드를 사용해야 한다는군요.

추신2 비쥬얼C 6.0에서는 export키워드를 지원하지 않는것 같군요. 어쩔수 없이 전부 헤더파일에 넣어야 하겠군요.

singlet의 이미지

export 키워드를 지원하는 C++ 컴파일러는 현재까지는 단 하나, Comeau 의 것밖에 없는 걸로 알고 있습니다. 다른 점에 있어서는 표준 C++ 을 웬만큼 지원하고 있는 G++ 도 export 만은 지원하지 못하고 있죠.

export 가 실질적으로 봉쇄돼 있는 현 상태에서는, 답은 몽땅 헤더에 집어넣는 것 뿐입니다. (뭐 결국은 같은 거지만 #include "stack.cpp" 같은 처방을 할 수도 있긴 있지요.)