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