c++ において、後置++、--をオーバーロードする場合、ダミーのint型引数が必用です。これは普通使いませんが、もったいないので使ってみました。通常はダミーには0が渡されるらしいですね。
#include <iostream>
class A {
private:
int val_;
public:
int val() const {return val_;}
int& val() {return val_;}
A(int n): val_(n){}
A operator++(int dummy){
A tmp{val_};
val_ += dummy + 1;
return tmp;
}
};
int main(){
A a{10};
a++; // a.val_ が1増える
std::cout << a.val() << std::endl;
a.operator++(5); //a.val_ が6増える
std::cout << a.val() << std::endl;
}
使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
まだコメントがありません。最初にコメントを残しませんか?
コメント投稿には、twitter認証が必要です。
Twitter認証