-
Template (3) 클래스 템플릿 특수화@ 16. 1 ~ 17. 1/C++ 2013. 1. 29. 20:40
특수화하는 이유는??
특정 자료형에 대해서 구분이 되는 다른 행동을 보이기 위해서..
typename<>
이런식으로..
다음과 같은 정의된 클래스 템플릿..
template<typename T>
class Point
{
private:
T xpos, ypos;
public:
Point(int x=0, int y=0) : xpos(x), ypos(y)
{}void ShowPosition() const;
};이런식으로..특수화를 해준다..
template<>
class Point<char*>
{
private:
char *string;
public:
void ShowData(char *str)
{
string = new char[strlen(str)+1];
strcpy(string,str);
cout << string << endl;
}
};주의할점은.. class Point< >해줘야한다는것..
템플릿 함수 특수화시
template<>
char *Max<char *> 랑 비슷한데..템플릿 함수는 생략이 가능함..
template<> 과 temaplate<typename T>는 언제 어떤경우에 구분하여 사용하는가?
template<>의 경우 T가 없는 특수화의 경우에 사용이 된다.
template<>
class Point<int> 이런식으로.. T를 정의할 필요가 없을때..
template<typename T>는
class Point
{
private:T xpos, ypos;
이것처럼 T라는것을 정의하기 위해서..
킁..
'@ 16. 1 ~ 17. 1 > C++' 카테고리의 다른 글
배열(1) (0) 2013.01.29 포인터(1) (0) 2013.01.29 Template (2) 클래스 템플릿 (0) 2013.01.29 Template (1) 함수 템플릿 (0) 2013.01.29 비트연산자, 함수포인터, ctime (0) 2013.01.27