我有一個<運算符重載的問題。 我有這個類:C++運算符<overloading
WordEntry.h:
class WordEntry
{
public:
WordEntry(string word);
~WordEntry();
bool operator<(const WordEntry otherWordEntry);
string getWord();
private:
string _word;
};
WordEntry.cpp(我刪除構造&析構函數):
string WordEntry::getWord()
{
return _word;
}
bool WordEntry::operator<(WordEntry otherWordEntry)
{
return lexicographical_compare(_word.begin(),_word.end(),otherWordEntry.getWord().begin(),otherWordEntry.getWord().end());
}
一切都很好,當我在主要使用它.cpp那樣:
WordEntry w1("Der");
WordEntry w2("das");
if (w1.operator<(w2)) {
cout << "w1 > w2";
}
else
{
cout << "w2 > w1";
}
但是當我打電話給sort()
上vector
與WordEntry
對象,我會得到錯誤信息
無效操作數的二進制表示( '常量WordEntry' 和 '常量 WordEntry')
並將其指向。
有沒有人知道這裏發生了什麼?
'const'複製幾乎失敗的目的... – AJG85 2012-04-19 18:43:53