Оператор вызова функций


Вызов ф-ии, т.е. запись выр-е (список_выражений) — это бинарная операция, где выр-е – левый операнд, а список выраж-ий -правый.И опер-р вызова()может быть перегружен как и др-ие опер-ры.Список парам-ров ф-ии operator() вычисл-ся и провер-ся в соотв-ие с обычными правилами передачи парам-ров.Перегружающая ф-ия явл. полезной гл.образом для опр-ия типов с ед-ой опер-ей или типов с одной гл.опер-ей.
Наиболее очевидным и наиболее важным исп-ем опер-ра()явл.предоставление синтаксиса станд-го вызова ф-ий для обьектов.к-е в нек-ром смысле ведут себя как ф-ии.Перегр-ая ф-ия operator()может возвр-ть зн-е зад-ых типов или ничего не возвращает.
Class TANYclass{
Int x;
public:
TANYclass(int n){x=n;}
Int operator()(void);
};
Перегр-я ф-ия член реал-ся как обычная
int TANYclass::operator()(void){return x;}
В прогр-ме класс может исп-ся так:
main(){
TANYclass object=100;
Int g=object();//второй пар-р
………………………………………
cout<<g;return 0;}
Второй опер-р похож на вызов ф-ии с именем
Object(),но вып-ся опер.:object.operator()()

Загрузка...