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>
#include<cstdlib>
 
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
 
  system("pause");
  return 0;
}
 

 

Out: 9