C++ C+中的模板类+;
下面是我的代码。我正在使用GNUG++编译器。我在函数'int main()'中得到错误“main.cpp: main.cpp:12:9:错误:“类哈希”没有名为“printVectorContents”的成员 我知道我忽略了一些愚蠢的事情,我就是不能把我的手指放在上面。有什么帮助吗C++ C+中的模板类+;,c++,templates,vector,C++,Templates,Vector,下面是我的代码。我正在使用GNUG++编译器。我在函数'int main()'中得到错误“main.cpp: main.cpp:12:9:错误:“类哈希”没有名为“printVectorContents”的成员 我知道我忽略了一些愚蠢的事情,我就是不能把我的手指放在上面。有什么帮助吗 int main() { std::cout << "Yeah you did dat"<<std::endl; hash<int> newHash; n
int main()
{
std::cout << "Yeah you did dat"<<std::endl;
hash<int> newHash;
newHash.printVectorContents();
std::cin.get();
return 0;
}
intmain()
{
标准::cout
hash
是一个通用名称,请将其设置为myhash
等,或者将其放置到自己的命名空间中以避免名称冲突
删除hash(){}
。您已经有一个构造函数使用默认参数,当您声明hash myhash;
时,它不知道要调用哪个构造函数
更改i
hash
是一个通用名称,请将其设置为myhash
等,或者将其放置到自己的命名空间中以避免名称冲突
删除hash(){}
。您已经有一个构造函数使用默认参数,当您声明hash myhash;
时,它不知道要调用哪个构造函数
<> L> >代码> >可能是<代码> hash 是指“代码> STD::hash < /Corp >而不是你的类模板?因为你没有显示完整的翻译单元,很难说你的翻译单元中有什么。你使用的是什么编译器?看起来,它看起来像19XX年的Borland Turbo C++ 3。你的代码有几个O。现代编译器发现的其他错误。您确定printVectorContents()中没有出现错误吗?例如,在"i@DietmarK下次我一定不会冒犯你,哦,伟大的,强大的C++神的神秘堆栈溢出。我将确保牺牲我的第一个出生在你的名字为我的侵犯今天。显然你是绝对正确的,我应该受苦。@托尔斯滕我正在使用GNU G+ +编译器与墙。这正是我从学术界。我意识到我实现的模板类是错误的。你在哪里看到了什么类型的错误?有没有可能hash
指的是std::hash
,而不是你的类模板?因为你显然没有显示完整的翻译单元,所以很难说你在翻译单元中得到了什么。你使用的是什么编译器?看起来,它看起来很像就像19XX年Borland Turbo C++ 3一样。你的代码有几个其他的错误被现代编译程序发现。你确定你也没有在PrimtVCortCorpTeX()中出错吗?"i@DietmarK下次我一定不会冒犯你,哦,伟大的,强大的C++神的神秘堆栈溢出。我将确保牺牲我的第一个出生在你的名字为我的侵犯今天。显然你是绝对正确的,我应该受苦。@托尔斯滕我正在使用GNU G+ +编译器与墙。这正是我从学术界。我正在执行我的模板类错误。你看到什么类型的错误?这些都是我需要改变的。谢谢。虽然它们没有修复我原来的错误。我开始意识到我有一个标题文件和一个模板类的CPP文件,这是错误的。这是造成我的大多数问题。我现在回到C++从D。C++一段时间,我有一点冒险尝试做太多的事情,这些都是我需要改变的谢谢。虽然他们没有修复我原来的错误。我开始意识到我有一个标题文件和一个模板类的CPP文件,这是错误的。这是造成我的大多数问题。我现在回到C++从在C#上了一段时间,我有点冒险,试图一次做太多的事情。
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;
}
}
};