我有一个<运算符重载的问题。 我有这个类: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