Qt 5.1 qHash error

Когда я определяю класс для использования хэша, возникает вопрос: ошибка показа:

«ошибка C2665:« qHash »: 17 перегрузок не могут преобразовать все параметры
типы D: \ Qt \ Qt5.1.1_x86 \ 5.1.1 \ msvc2012 \ include \ QtCore \ qhash.h 111 1 «

Я думаю, что код исключения перегружен qHash (const Person &ключ). Как я могу иметь дело?
Мой QT составляет 5,1.

class Person
{
public:
Person(const QString& name,const QString& number);

const QString& name() const;
const QString& number() const;

inline bool operator==(const Person &compare) const
{
return (name()==compare.name())&&(number()==compare.number());
}

uint qHash(const Person &key)
{
return qt_hash(key.name())^qt_hash(key.number());
}

private:
QString m_name,m_number;
};

1

Решение

Объявите qHash () для вашего класса больше.

class Person
{
public:
Person(const QString& name,const QString& number);

const QString& name() const;
const QString& number() const;

inline bool operator==(const Person &compare) const
{
return (name()==compare.name())&&(number()==compare.number());
}
private:
QString m_name,m_number;
};

uint qHash(const Person &key)
{
return qt_hash(key.name())^qt_hash(key.number());
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]