Groovyのインクリメント・デクリメントの演算子++, --は、メソッドprevious(), next()にマップされていて、これらのメソッドを定義もしくはオーバーライド定義することで、演算子のオーバーロードを行うことができます(その他、plus,minus,..など、結構な種類の演算子を同様にオーバーロード可能です)。 で、疑問なのは、インクリメント・デクリメントの演算子に関して、前置・後置を区別して2つ定義しなくていいいのかということです。C++だと、前置用と後置用にそれぞれに定義が必要ですからね。 結論から言うと、不要です。あるべきnextを定義しておけば、前置と後置の使い分けは処理系のほうでやってくれます。つまり、 ++a は a=a.next() に展開され、 a++ は tmp = a, a=a.next(), tmp に展開されます。previous()も同様です。 C#