게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 클래스에서 템플릿좀 ㅜㅜ도와주세영
게시물ID : computer_49003짧은주소 복사하기
작성자 : 도와주삼ㅜ
추천 : 0
조회수 : 323회
댓글수 : 5개
등록시간 : 2012/06/04 15:40:23
template <typename T>
class clacs
{
private:
T ref1 , ref2;
public:
clacs(T ref1_=0, T ref2_=0):ref1(ref1_), ref2(ref2_){cout<<"생성자호출"<<endl;
cout<<ref1<<" "<<ref2<<endl;}

T add(T a , T b);
T sub(T a , T b);
T mul(T a,  T b);
T div(T a,  T b);
};
template <typename T>
T clacs<T>::add(T a, T b) 
{ cout<<"add호출"<<endl;
return a+b;
}
template <typename T>
T clacs<T>::sub(T a, T b)
{
return a-b;
}
template <typename T>
T clacs<T>::mul(T a, T b)
{
return a*b;
}
template <typename T>
T clacs<T>::div(T a, T b) 
{
return a/b;
};

int main()

cout<<"탬플릿 클래스를 구성하여 템플릿 함수 구현"<<endl;
clacs<int> a;
cout<<"----------------------"<<endl;
cout<<" <덧  셈> 10 + 2 = "<<a.add(10,2)<<endl;
cout<<" <뺄  셈> 10 - 2 = "<<a.sub(10,2)<<endl;
cout<<" <곱  셈> 10 * 2 = "<<a.mul(10,2)<<endl;
cout<<" <나눗셈> 10 / 2 = "<<a.div(10,2)<<endl;
cout<<"----------------------"<<endl;
}

이렇게 탬플릿을 썻는데요..
템플릿 특수화를 해서 add를 하나 더 넣어야 하거든요..

책에 예제가 없어서


template <>
T clacs::char* add(char* c,char * b)
{ int len1, len2;
len1=strlen(c);
len2=strlen(b);
char *a=new char[len1+len2+1];
strcpy(a,c);
strcat(a,b) ;

return a;
}
이런 식으로 해봣는데 자꾸 안되서 좀 도와주실분 ㅜㅜ
클래스에서 탬플릿 말고 클래스 안만들고 탬플릿호출 햇을땐 저렇게 해서 
특수화됬엇거든여 ㅠㅠㅠ 도와주세요..
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호