以下是我的代码。我正在使用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