マイナス(-)、インクリメント(++)。etcを使用した単項演算子のオーバーロードについて読んでいました。練習のために同じコードを書こうと思ったのですが、実行しようとするとマイナス演算子とインクリメント演算子の両方でエラーが発生します。問題はメインの演算子の呼び出し方にあると思います。これを行う正しい方法は何ですか?
#include<iostream>
using namespace std;
class c{
int x;
int y;
public:
c(int a,int b){
x=a;
y=b;
}
void operator -(){
x=x+1;
y=y+1;
}
void display(){
cout<<x<<" "<<y<<"\n";
}
};
int main()
{
c obj(2,3);
obj.display();
obj- ; //I think the error is on this line
obj.display();
return 0;
}
obj-を-objに置き換えると、コードは正常に機能します。なぜそうなのですか?++演算子のオーバーロードの問題も同じです(++ objを使用すると正常に機能しますが、obj ++は機能しません)、なぜですか?
ありがとう。