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

时间:2013-10-26 19:26:20

标签: c++ operator-overloading

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

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的重载教程,我无法看到我遗漏或做错了什么。

2 个答案:

答案 0 :(得分:6)

obj1obj2是指针,因此您*obj1 < *obj2

答案 1 :(得分:1)

obj1和obj2是MyClass的指针。 如果你想调用operator&lt;使用: * obj1&lt; * OBJ2