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.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: