devxlogo

Overloaded Operators May Not Have Default Parameters

Overloaded Operators May Not Have Default Parameters

Unlike ordinary functions, overloaded operators cannot declare a parameter with a default value (overloaded operator() is the only exception):

 class Date{  private:    int day, month, year;  public:    Date & operator += (const Date & d = Date() ); //error, default arguments are not allowed};

This rule may seem arbitrary. However, it captures the behavior of built-in operators, which never have default operands either.

devx-admin

Share the Post: