【发布时间】:2013-03-09 17:30:57
【问题描述】:
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语句中看到[和]。 -
如果您还没有了解原始数组和成员变量,我不确定您是如何获得模板专业化的。
标签: c++