1
當我定義一個類使用哈希,遇到一些question.IDE顯示錯誤:的Qt 5.1 qHash錯誤
"error C2665: 「qHash」: 17 overloads can not convert all parameter types D:\Qt\Qt5.1.1_x86\5.1.1\msvc2012\include\QtCore\qhash.h 111 1"
我覺得異常代碼是超載qHash(const的人&鍵)我。怎麼能處理呢? 我的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;
};
Thanks.Declare qHash()在類外面,遇到其他錯誤。錯誤LNK2005:已在Listing1_22.obj中定義了「unsigned int __cdecl qHash(class Person const&)」(?qHash @@ YAIABVPerson @@@ Z)G:\ Code \ C++ \ QT \ FoundationOfQtDevelopment \ Chapter1_RecognizeQT \ main.obj – user2492798
需要在cpp文件中移動qHash函數實現,就像任何其他函數一樣。 –