Programowanie i algorytmy

Przeciążanie operatora [ ]

Zad. 2. Napisz program, który przeciąży operator [ ] w taki sposób, że dla podanej liczby naturalnej jako argumentu tego operatora, funkcja operatorowa zwróci sumę cyfr podanej liczby.

Rozwiązanie

#include<iostream>
#include<cstdlib>
 
using namespace std;
 
class klasa{
  public:    //funkcja operatorowa przeciążająca operator [ ]
    int operator [ ](int liczba) 
    {
      //wyznaczenie sumy cyfr podanej liczby
      int s = 0;
      while(liczba!=0)
      {
        s+=liczba%10;
        liczba/=10;
      }
      return s;
    }
};
int main()
{
  klasa suma; //stworzenie obiektu
 
  cout<<"Suma cyfr liczby 123 wynosi "<<suma[123]<<endl;
 
  system("pause");
  return 0;
}
 
 

 

Out: Suma cyfr liczby 123 wynosi 6