我是qt的新手并且学习如何处理QHash的工作.在使用这个例子我不明白为什么这会引发我的错误.我可能会遗漏一些东西,但请指导我学习这个.
main.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();
}
Run Code Online (Sandbox Code Playgroud)
person.h
class Person
{
public:
Person();
Person(QString name,QString num);
bool operator==(const Person & other) const; //== overloading to assign in QHash
QString name,number;
};
Run Code Online (Sandbox Code Playgroud)
person.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;
}
Run Code Online (Sandbox Code Playgroud)
错误是: - 'qHash':17个重载中没有一个可以转换所有的参数类型.我知道我错过了什么.请指导我.