“invalid operands to binary OP (have ‘xxx’ and ‘yyy’)” というエラーメッセージは、二項演算子 (例えば +
、-
、*
など) を適用しようとしたとき、演算子の左右のオペランドの型が異なる場合に表示されます。
例えば、次のようなコードを書いたとします。
int x = 10; double y = 3.14; int z = x + y;
このコードでは、変数 x
の値を整数型で、変数 y
の値を浮動小数点型で定義しています。そして、二項演算子 +
を使って、x
と y
の値を足し合わせることを試みています。
しかし、整数型と浮動小数点型を直接足し合わせることはできないため、このコードは “invalid operands to binary + (have ‘int’ and ‘double’)” というエラーを引き起こします。
正しいコードは、次のようになります。
int x = 10; double y = 3.14; double z = x + y;
この場合、変数 x
の値を整数型で、変数 y
の値を浮動小数点型で定義したままですが、結果を格納する変数 z
を浮動小数点型にしています。そのため、演算子 +
を適用した結果も浮動小数点型になり、このコードはエラーを引き起こしません。
コメント