デフォルト引数でオーバーロードしようとしたけどうまくいかず…
#include <iostream> using namespace std; class Foo { private: int i; public: Foo(int i) : i(i) {}; int to_i() { return i; } Foo &operator ++() { cout << "前置\n"; ++i; return *this; } Foo &operator ++(int notused) { cout << "後置\n"; i++; return *this; } }; int main() { Foo foo(0); ++foo; cout << foo.to_i() << "\n"; foo++; cout << foo.to_i() << "\n"; return 0; }
前置
1
後置
2