当我定义要使用散列的类时,会遇到一些question.IDE显示错误:
错误C2665:“qHash”:17重载不能转换所有参数类型的qHash 111 1“
我认为异常代码是重载的,qHash(const &key).How,我能处理吗?我的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;
};发布于 2013-12-16 09:04:13
为您的类特大声明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());
}https://stackoverflow.com/questions/20606702
复制相似问题