Using the covariant return type on the operator++ on numerical methods