PROGRAMOWANIE I ALGORYTMY

Przeciążanie operatora unarnego


Zad. 3. Napisz program, który przeciąży unarny (jednoargumentowy) operator "-" w taki sposób, żeby dekrementował wartość atrybutu danego obiektu.

Rozwiązanie

#include<iostream>
using namespace std;

class klasa{
	public:		
		klasa(){x = 0;} //domyslna wartosć atrybutu x wynosi 0
		klasa(int a) //konstruktor pobierający wartosć dla atrybutu x
		{
			x = a;
		}
		int operator - () //operator unarny nie posiada drugiego argumentu
		{				 //dlatego nawias jest pusty		
			--x;
		}
		int zwroc() //metoda zwraca wartosc atrybutu x
		{
			return x;
		}
	private:
		int x;
};
int main()
{
	klasa A(10); //stworzenie obiektu A i nadanie wartosci 0 atrybutowi x
	
	-A;//dekrementacja x
	
	cout<<A.zwroc()<<endl; // out: 9

	return 0;
}
Out: 9