diff --git a/testHasttable/singletonbase.h b/testHasttable/singletonbase.h index b9abb72..0183241 100644 --- a/testHasttable/singletonbase.h +++ b/testHasttable/singletonbase.h @@ -4,8 +4,7 @@ //做一个单例 #include - -template +template class SingletonBase { public: @@ -13,20 +12,26 @@ public: // ~SingletonBase(); void add(const KeyType& key,const ValueType& val) { - this->ht[key]=val; + QHash *t=SingletonBase::ht; + (*t)[key]=val; } bool contains(const KeyType& key) { - return this->ht->contains(key); + return SingletonBase::ht->contains(key); } ValueType get(const KeyType& key) { - return this->ht[key]; + QHash *t=SingletonBase::ht; + return (*t)[key]; } - void initInstance() { - if() + if(SingletonBase::ht) + { + delete SingletonBase::ht; + SingletonBase::ht==NULL; + } + SingletonBase::ht=new QHash; } protected: @@ -43,4 +48,8 @@ protected: static QHash *ht; }; + +template +QHash *SingletonBase::ht=NULL; + #endif // SINGLETONBASE_H