以下是我的代碼。我正在使用GNU G ++編譯器。我得到錯誤「main.cpp:在函數'int main()': main.cpp:12:9:錯誤:'class hash'沒有名爲'printVectorContents'的成員」C++中的模板類
我知道我在俯瞰有些愚蠢我不能把手指放在它上面。任何幫助?
int main()
{
std::cout << "Yeah you did dat"<<std::endl;
hash<int> newHash;
newHash.printVectorContents();
std::cin.get();
return 0;
}
和我的模板類...
template <class dataTypeClass> class hash{
private:
std::vector <dataTypeClass> hashVector;
std::string mName;
public:
hash(){}
hash(std::string aName = "unnamedHash"):mName(aName),hashVector(100,NULL){}
~hash(){std::cout<<"Hash "<<mName<<"destructing!";}
void addHashItem(dataTypeClass aHashItem, std::string akey){}
int hashFunction(dataTypeClass hashItem){return 0;}
void printVectorContents()
{
for (typename std::vector<dataTypeClass>::iterator i = hashVector.begin(); i<hashVector.rend(); i++)
{
std::cout<< *i << std::endl;
}
}
};
有沒有可能'hash'是指'std :: hash '而不是你的班級模板?由於您顯然沒有展示完整的翻譯單元,因此很難說出您翻譯單元中的內容。 –
你使用什麼編譯器?看起來,它看起來像19xx年的Borland Turbo C++ 3.0。你的代碼還有其他一些由現代編譯器發現的錯誤。 – Torsten
你確定你沒有在printVectorContents()中出錯嗎?例如。在「i