0

このコードでのオーバーロードされた演算子の使用を理解しようとしてきましたが、それについて頭を悩ませることはできません。オーバーロードされた演算子の目的や必要な理由が正確にわかりません。これは初心者の質問であることは承知していますが、誰かがそれを説明できれば幸いです。

const int Card::operator+(const Card& B)
{
if ((faceValue ==1 || B.faceValue == 1) && (faceValue + B.faceValue)<= 11)
    return 10 + faceValue + (B.faceValue);
else
    return faceValue + (B.faceValue);

}

繰り返しますが、これに関する助けに本当に感謝しています。

4

3 に答える 3

0

演算子のオーバーロードは、たとえばクラス Card のオブジェクトなどのユーザー定義型を操作しているときに明らかになります。「+」演算子は、int、float、double などのプリミティブ データ型に使用するためのものです。つまり、ここで行っているのは、'+' の機能を追加して、クラス オブジェクトを操作することです。

また、言及された@Mats Peterssonは正しいです。演算子のオーバーロードされた関数にロジックを課すのではなく、必要に応じて別の関数を使用してください。

于 2013-05-12T08:18:27.650 に答える