VOOZH about

URL: https://www.geeksforgeeks.org/cpp/increment-and-decrement-operator-overloading-in-c/

⇱ Increment (++) and Decrement (--) Operator Overloading in C++ - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Increment (++) and Decrement (--) Operator Overloading in C++

Last Updated : 4 Jun, 2026

Operator overloading allows user-defined types to redefine the behavior of operators. In C++, the increment (++) and decrement (--) operators can be overloaded to work with objects in a way similar to built-in data types.

  • Allows objects to be incremented or decremented using ++ and --.
  • Supports both prefix and postfix forms of the operators.
  • Improves code readability and makes custom classes easier to use.

Increment (++) Operator Overloading in C++

The increment operator (++) is used to increase the value of an object. It can be overloaded to define custom increment behavior for user-defined classes.

  • Can be overloaded as prefix (++obj) or postfix (obj++).
  • prefix increment modifies the object before returning it.
  • postfix increment returns the original value and then increments the object.

Prefix Increment Operator Overloading:

Syntax

ClassName operator++(){
// increment logic
}


Output
Count = 6

Explanation

  • The object c is initialized with the value 5.
  • The prefix operator ++c increases the value before it is used.
  • The updated value becomes 6.

Postfix Increment Operator Overloading:

Syntax:

ClassName operator++(int){
// increment logic
}


Output
Count = 6

Explanation

  • The postfix operator uses a dummy int parameter to distinguish it from the prefix version.
  • The original value is stored in a temporary object.
  • The object is incremented after returning the original value.

Decrement (--) Operator Overloading in C++

The decrement operator (--) is used to decrease the value of an object. Similar to the increment operator, it can be overloaded in both prefix and postfix forms.

  • Supports both prefix (--obj) and postfix (obj--) forms.
  • Prefix decrement decreases the value before returning it.
  • Postfix decrement returns the original value and then decreases it.

Prefix Decrement Operator Overloading:

Syntax:

ClassName operator--(){
// decrement logic
}


Output
Count = 4

Explanation

  • The object starts with the value 5.
  • The prefix decrement operator decreases the value before it is used.
  • The updated value becomes 4.

Postfix Decrement Operator Overloading:

Syntax:

ClassName operator--(int){
// decrement logic
}


Output
Count = 4

Explanation

  • The postfix decrement operator first stores the original value.
  • The object's value is then decreased.
  • The updated value becomes 4.

Prefix vs Postfix Operator Overloading

FeaturePrefix (++obj / --obj)Postfix (obj++ / obj--)
Syntaxoperator++()operator++(int)
Syntaxoperator--()operator--(int)
ExecutionValue changes before useValue changes after use
Return ValueReturns updated objectReturns original object
PerformanceSlightly fasterSlightly slower due to temporary object
Dummy ParameterNot requiredRequires int parameter
Comment
Article Tags: