2

在我的课堂上,我将原型(公共)编写为:

bool operator< (const MyClass& obj);

我在类外(在同一个文件中)实现该方法:

bool MyClass::operator< (const MyClass& obj)
{
    cout << "operator< used" << endl;
    //do my work
}

问题是,虽然我的重载运算符会在我显式调用(如obj1->operator<(*obj2))时被调用,但在隐式调用时不会被调用(如obj1 < obj2)。

我已按照本文中的重载教程进行操作,但看不到我遗漏了什么或做错了什么。

4

2 回答 2

6

obj1并且obj2是指针,所以你做*obj1 < *obj2.

于 2013-10-26T19:28:34.793 回答
1

obj1 和 obj2 是指向 MyClass 的指针。如果你想调用 operator < 使用:*obj1 < *obj2

于 2013-10-26T19:32:27.030 回答