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