Write a program to create class “Counter” having integer data member, overload the post increment, post decrement, pre increment and pre decrement for the class “Counter”.
Sep 15, 2018Program:
// program to demeonstrate the unary operators
#include<iostream>
using namespace std;
class Counter{
private:
int number;
public:
Counter(int n = 0){
number = n;
}
// function declarations for the operator overloading
Counter operator ++(); //declaration for pre increment
Counter operator ++(int); //declaration for post increment
Counter operator --();
Counter operator --(int);
// function to display the cout
void display();
};
// function definations
Counter Counter::operator ++(){
return Counter(++number);
}
Counter Counter::operator ++(int){
return Counter(number++);
}
Counter Counter::operator --(){
return Counter(--number);
}
Counter Counter::operator --(int){
return Counter(number--);
}
void Counter::display(){
cout<<"number:"<<number<<endl;
}
// main program
int main(){
Counter c1,c2(10),c3,c4;
cout<<"Before pre increment for c1:"<<endl;
c1.display();
++c1;
cout<<"After pre increment for c1:"<<endl;
c1.display();
cout<<"Before post increment for c1:"<<endl;
c1.display();
c3 = c1++;
cout<<"After post increment for c1:"<<endl;
c1.display();
cout<<"Value of c3:"<<endl;
c3.display();
cout<<"Before pre decrement for c2:"<<endl;
c2.display();
--c2;
cout<<"After pre decrement for c2:"<<endl;
c2.display();
cout<<"Before post decrement for c2:"<<endl;
c2.display();
c4 = c2--;
cout<<"After post decrement for c2:"<<endl;
c2.display();
cout<<"Vaue of c4:"<<endl;
c4.display();
return 0;
}
Sample output: please analyze the output to understand the concept.
Before pre increment for c1: number:0 After pre increment for c1: number:1 Before post increment for c1: number:1 After post increment for c1: number:2 Value of c3: number:1 Before pre decrement for c2: number:10 After pre decrement for c2: number:9 Before post decrement for c2: number:9 After post decrement for c2: number:8 Vaue of c4: number:9