【问题标题】:Overloaded operator for C++ class doesn't get calledC++ 类的重载运算符不会被调用
【发布时间】:2013-10-26 19:26:19
【问题描述】:

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

bool operator< (const MyClass& obj);

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

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

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

我遵循了来自 this article 的重载教程,但我看不出我遗漏了什么或做错了什么。

【问题讨论】:

    标签: c++ operator-overloading


    【解决方案1】:

    obj1obj2 是指针,所以你可以使用 *obj1 &lt; *obj2

    【讨论】:

    • 我也希望它是免费的。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多