错误:如果(object1 == object2)与'operator =='(操作数类型为'const class'和'const class')不匹配

时间:2019-05-04 15:05:37

标签: c++

我的代码有一些错误,我不知道该如何解决。 错误是:

error: no match for ‘operator==’ (operand types are ‘const Secuencia’ and const Secuencia’)
if (sec1 == sec2)

note: candidate: ‘bool Secuencia::operator==(const Secuencia&)’ 
bool operator == (const Secuencia & otro);

note: passing ‘const Secuencia*’ as ‘this’ argument discards qualifiers

在我的.h中,我有:

bool operator == (const Secuencia & other);

在我的.cpp文件中:

bool Secuencia :: operator == (const Secuencia & other){

    bool same = (used == other.used && capacity == other.capacity ? true:false);

    if(same == true){

        for(int i = 0; i < used && same == true; i++){
            if(info[i] != otro.info[i])
                same = false;
        }

    }

    return (same);
}

1 个答案:

答案 0 :(得分:0)

如果将operator ==定义为成员函数,则应为const

       bool operator == (const Secuencia & other) const;