Перегрузка унарной операции инкремента в постфиксной
форме записи
Теперь операцию инкрементирования можно использовать с собственным.
типом данных! :)
//------------------------------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
using namespace std;
class Counter
{
private:
unsigned int count;
public:
Counter(): count(0)
{}
Counter(int c): count(c)
{}
void display()
{cout<<count;}
//Метод перегружающий операцию ++
(используется с аргументом int)
//int - это не аргумент, а задумка разработчиков С++ для различения префиксной
и
//постфиксной формы записи.
Counter operator++(int)
{return Counter (count++);}
};
////////////////////////////////
int main()
{
Counter number1, number2;
cout<<"\nNumber1: "; number1.display();
cout<<"\nNumber2: "; number2.display();
number1++;
number2++;
number2++;
cout<<"\nNumber1: "; number1.display();
cout<<"\nNumber2: "; number2.display();
number1=number2++;
cout<<"\nNumber1: "; number1.display();
cout<<"\nNumber2: "; number2.display();
cout<<endl;
getch();
return 0;
}
//------------------------------------------------------------------------------------------------