template<>
class CalcHashClass<const char*> {
public:
CalcHashClass(const char* v) {
_v = new char[strlen(v) + 1];
strcpy(_v,v);
}
~CalcHashClass() {
delete [] _v;
}
int hashCode() {
printf("This is 'template <> class CalcHashClass<const char*>'.\n");
int len = strlen(_v);
int code = 0;
for (int i = 0; i < len; ++i)
code += (int)_v[i];
return code;
}
private:
char* _v;
};
위 코드의 경우 무엇이 delete [] _v;
입니까? 제 생각에 _v는 포인터입니다. 삭제하려면 delet _v
을 사용해야합니다. 맞습니까? []
의 의미는 무엇입니까?'[[_]; 삭제 하시겠습니까?' 평균?
'_v'는 배열임을 의미합니다. 'new' 문에서'['와']'를 볼 수 있습니다. –
원시 배열과 멤버 변수에 대해 알지 못했을 때 템플릿 전문화를 어떻게 얻었는지 잘 모르겠습니다. – dchhetri