私は 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();
}
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;
};
人.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 のオーバーロードのどれもすべての引数の型を変換できませんでした。