4

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

4

2 に答える 2