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認証