7

タイトルを考えるのはとても難しかったです... (私は英語のネイティブスピーカーではありません.)

struct A
{
    int value;
    A operator+(int i) const
    {
        A a;
        a.value=value+i;
        return a;
    };
};
int main(){
    A a;
    a.value=2;
    a=a+2;
    return 0;
}

このコードは期待どおりにコンパイル/動作しますが、a=a+2 を a=2+a に変更すると、コンパイルされなくなります。GCCは私にこのエラーを与えます:

no match for ”operator+” in ”2 + a”

2+a を a+2 のように機能させる方法はありますか?

4

3 に答える 3