gpt4 book ai didi

c++ - C++ 中的模板化类

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:15 24 4
gpt4 key购买 nike

下面是我的代码。我正在使用 GNU G++ 编译器。我收到错误消息“main.cpp: In function ‘int main()’:main.cpp:12:9: 错误:‘class hash’没有名为‘printVectorContents’的成员”

我知道我忽略了一些愚蠢的事情,我只是无法确定它。有什么帮助吗?

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;
}
}
};

最佳答案

  1. hash是一个普通的名字,做成myhash等,或将其放入自己的命名空间以避免名称冲突。

  2. 删除 hash(){} .当您声明 hash<int> myhash; 时,您已经有一个构造函数采用默认参数,它不知道要调用哪个构造函数。

  3. 更改 i<hashVector.rend()i != hashVector.end() .

  4. 更改 hashVector(100,NULL)hashVector(100) .

关于c++ - C++ 中的模板化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com