c++ 템플릿 관련 질문입니다.
글쓴이: fopenfclose / 작성시간: 화, 2015/12/08 - 3:23오후
클래스 템플릿 전문화 하려고
#include "Common.h" #include "CCard.h" template<> class CDeck { public: explicit CDeck(); ~CDeck(); CCard * createNode(); void push(CCard *); CCard pop(); private: CCard * m_top; };
이렇게 짰는데
"class CDeck is not an entitity that can be explicitly specialized"
라는 에러 메세지를 냅니다. 이 메세지를 구글에서 검색해봐도 자바 클래스 얘기들만 나오고
원인을 찾을 수 없는데 혹시 왜 이렇게 되는건지 알려주실 수 있나요??
Forums:
의견
답변은 아니고 의견입니다.
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=239369379&qb=dGVtcGxhdGU8Pg==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=SEiJ1doRR1VssuT6VBZsssssstN-364216&sid=1PsZyOj2fLiWzmQhNQNzKA%3D%3D
이것을 참조한다면, 이런 식으로 작성하면 어떤가요?
CDeck은 암묵적으로 특수화될 수 없는 개체라는 것인데,
그러면 특수화하려는 형식을 지정해주면 되지 않나 하는 생각입니다.
------------------------
이건 잘 되는군요.
저는 이렇게 생각했습니다.
#include "Common.h" #include
답변 감사합니다.
작성해주신 소스에서
class CDeck 에서
class CDeck<다른 클래스> 의 형태 처럼 작성해도 되는건가요??
답변
네. 그럴 의도로 작성한 코드였습니다.
저는 이렇게 생각했습니다.
헤더 파일 입니다. #pragma
궁금한 점은
.cpp 파일에서 헤더 파일에서 선언된 일반 클래스 템플릿을 정의해야 하나요?
아니면 전문화된 템플릿을 정의해야 하나요??
아니면 둘 다 정의가 되어 있어야 하나요??
댓글 달기