不会调用C++类的重载运算符

Bab*_*bri 2 c++ operator-overloading

在我的班上,我把原型(公共)写成:

bool operator< (const MyClass& obj);
Run Code Online (Sandbox Code Playgroud)

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

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

问题是虽然我的重载操作符被调用,如果我明确地调用它(如obj1->operator<(*obj2)),但不是在隐式调用时(如obj1 < obj2).

我跟着本文的重载教程,我看不出我错过了什么或做错了什么.

0x4*_*2D2 6

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