Qt 5.1 qHash error



当我定义一个类来使用hash时,会遇到一些问题。IDE显示错误:

错误C2665:"qHash":17个重载无法转换所有参数类型D:\Qt\Qt5.1.1_x86\5.1.1\msvc2012\include\QtCore\qhash.h 111 1"

我认为异常代码是重载qHash(constPerson&key)。我该怎么处理?我的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;
};

为类oversize声明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());       
}

相关内容

  • 没有找到相关文章

最新更新