시작 - 당신은 다음과 같은 기능을 쓰기 두 개의 문자열을 추가 할 경우에 당신은 retun a
을 (전년 동기 대비 반환 형식 참조) 할 수 있습니까? 매개 변수는 문자열이 아니기 때문에 숫자가 아닙니다 아마 두 문자열을 연결해야합니까? 당신이 가치를 추가 생각하는 경우
char* sum(char* a, char* b){
char* sum = new char[ strlen(a) + strlen(b) + 1 ];
memcpy(sum, a, strlen(a));
memcpy(sum + strlen(a), b, strlen(b));
sum[strlen(a) + strlen(b)] = '\0';
return sum;
}
지금 당신이, 당신이 그것을에 원하는 것을 할 수 있도록하기 위해 sum
템플릿 기능을 전문으로 할 수
이 달성 무언가를 작성합니다. 나는.
template<>
char* sum<char*>(char* a, char* b){
...
그래서 지금 당신은이 작업을 수행 할 수 있습니다
int c = sum(5, 7);
cout << c << endl;
char face[5] = {'F', 'a', 'c', 'e', '\0'};
char book[5] = {'b', 'o', 'o', 'k', '\0'};
char* raw = sum(face, book);
cout << raw << endl;
delete [] raw; // Remember you need to delete the heap that sum() grabbed.
출력 :
12
Facebook
이 예제는 물론, 매우 조잡하고 뭔가 당신은에서 할 싶어하지 중요한 코드. 저는 이것이 이런 식으로 전문화하는 것이 어떤 특별한 가치도 추가하지 않고 단지 표준 라이브러리에서 다른 방식으로 이미 달성 된 것처럼 단지 운동 일 뿐이라고 추측합니다.
달성하고자하는'sum (char * a, char * b)는 무엇입니까? 이것이 템플릿 문제라고 생각하지 않습니다. a와 b가 가리키는 주소에 문자 값을 추가하고 그 결과를 숫자가 아닌 문자에 대한 포인터로 해석하려고하는 것처럼 보입니다. –
나는 'char *'타입을위한 템플릿과 특수 함수를 사용하여 함수 합 (a, b)를 구현해야한다. –