为啥我有这个错误重载运算符?

Posted

技术标签:

【中文标题】为啥我有这个错误重载运算符?【英文标题】:why i have this error overloading an operator?为什么我有这个错误重载运算符? 【发布时间】:2019-03-29 08:37:57 【问题描述】:

我想定义一个运算符来对对象向量“esame”进行排序,但我有这个错误:

/* esame.cpp:46:6: 错误:'bool 的原型 esame::operator

     bool operator<(const esame &) const

    //this is the declaration on the header file:

    bool operator<(const esame &) const;





    //this is implementation on the cpp file:

    bool esame::operator<(esame &exam) const
    
        if (this->getNome() < exam.getNome())
            return true;
         else
            return false;
          
    

【问题讨论】:

与错误无关,但this-&gt;getNome() &lt; exam.getNome()的结果已经是bool。你不需要if 【参考方案1】:

签名不同。在实现中将const 添加到esame &amp;exam

【讨论】:

以上是关于为啥我有这个错误重载运算符?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们必须重载“<”运算符才能使用 is_permutation 并包含算法

为啥不能重载三元运算符?

c++中为啥赋值运算符重载返回类型是引用

为啥有人要重载 & (address-of) 运算符? [复制]

为啥当我重载数组运算符时我的私有变量为零? [关闭]

为啥我们在赋值运算符重载中使用引用返回而不是在加减运算中?