gpt4 book ai didi

c++ - 在自定义类中使用 QHash

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:51 27 4
gpt4 key购买 nike

我是 Qt 的新手,正在学习处理 QHash 的工作原理。在处理这个例子时,我不明白为什么这会给我一个错误。我可能会遗漏一些东西,但请指导我学习这一点。

主要.cpp

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QHash<QString,Person> hash;
QString key="1";

Person p;
p.name = name;
p.number = an;

hash.insert(key,p);

return a.exec();
}

人.h

class Person
{
public:
Person();
Person(QString name,QString num);
bool operator==(const Person & other) const; //== overloading to assign in QHash
QString name,number;
};

人.cpp

Person::Person()
{
}
Person::Person(QString name, QString num)
{
this->name=name;
this->number=num;
}
bool Person::operator==(const Person & other) const
{
bool state;
if (name == other.name )
state = true;
else
state = false;

return state;
}

错误是:-'qHash':17 个重载中没有一个可以转换所有参数类型。我知道我遗漏了一些东西。请指导我。

最佳答案

您需要全局 qHash() 函数。

A QHash's key type has additional requirements other than being an assignable data type: it must provide operator==(), and there must also be a qHash() function in the type's namespace that returns a hash value for an argument of the key's type.

参见 this有关更多信息。

关于c++ - 在自定义类中使用 QHash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19805207/

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