operator жаңа_типтің_атауы ();
Қайтарылатын мəн типін жəне параметрді көрсетудің қажеті жоқ. Типтерді
түрлендірудің виртуалды функцияларын анықтауға болады.
Мысал:
monstr::operator int(){return health;}
...
monstr Vasia; cout << int(Vasia);
Функцияны шақыру операциясының асыра жүктелуі
Функцияны шақыру операциясы анықталған класс функционалды деп ата-
лады. Мұндай кластан басқа өрістер мен əдістердің болуы талап етілмейді:
class if_greater{
public:
int operator () (int a, int b) const {
return a > b;
}
};
Мұндай класты қолданудың синтаксисі ерекше болып келеді. Мысал
қарастырайық:
if_greater x; cout << х(1, 5) << endl; // Нəтижесі - 0
cout << if_greater()(5, 1) << endl; // Нəтижесі – 1
Мысалдағы
if_greater
класында екі параметрі бар функцияны
шақыру операциясы анықталғандықтан,
х(1,5)
өрнегін жазуға болады
(дəл осыны
Достарыңызбен бөлісу: |