1. ホーム
  2. c++

[解決済み] invalid operands to binary expression" エラーの修正方法を教えてください。

2022-03-09 20:25:46

質問

私はc++の使用経験が浅く、コンパイラが生成するポイントで行き詰まっています。 バイナリ式のオペランドが無効

class Animal{
public:
    int weight;
};

int main(){
    Animal x, y;
    x.weight = 33;
    y.weight = 3;

    if(x != y) {
    // do something
     }
}

メインコードで (x.weight != y.weight) などのコードを修正せずに、x を使って y と比較したいのですが。この問題は、外部のクラスや定義からどのようにアプローチすればよいのでしょうか?

どのように解決するのですか?

または、演算子のオーバーロードを非メンバーとして追加することができます。

#include <iostream>
using namespace std;

class Animal{
public:
    int weight;
};

static bool operator!=(const Animal& a1, const Animal& a2) {
    return a1.weight != a2.weight;
}

int main(){
    Animal x, y;
    x.weight = 33;
    y.weight = 3;

    if(x != y) {
        cout << "Not equal weight" << endl;
    } 
    else {
        cout << "Equal weight" << endl;
    }
}