在我的课堂上,我将原型(公共)写为:
bool operator< (const MyClass& obj);
我在类之外(在同一个文件中)实现方法:
bool MyClass::operator< (const MyClass& obj)
{
cout << "operator< used" << endl;
//do my work
}
问题在于,如果我明确地调用它(例如obj1->operator<(*obj2)
),我会调用我的重载运算符,但是在隐式调用时(例如obj1 < obj2
)则不会调用。
我已经跟踪了this article的重载教程,我无法看到我遗漏或做错了什么。
答案 0 :(得分:6)
obj1
和obj2
是指针,因此您*obj1 < *obj2
。
答案 1 :(得分:1)
obj1和obj2是MyClass的指针。 如果你想调用operator&lt;使用: * obj1&lt; * OBJ2