LINUX.ORG.RU

Re: как в функцию передать в качестве аргумента имя другой ф-ции

язык какой? если Си то как нить так:

int function (int (*foo)(void))
{
    /* вызывать так */
    foo();
    /* или так */
    (*foo)();

    /* ... */
}

anonymous ()

Re: как в функцию передать в качестве аргумента имя другой ф-ции

в Си имя функции ничего общего не имеет с вызовом функции.
(во всяком случае пока речь не идет о динамическом связывании)

можно передавать указатель на функцию, и вызывать ее по указателю,
как -- выше сказано.

anonymous ()

Re: Re: как в функцию передать в качестве аргумента имя другой ф-ции

Kак сказал предыд. тов. "имя функции ничего не значит" в
pure C/C++. Но такая возможность существует, если ты
работешь в framework имеющую "full RTTI" (Run Time Type Identification). Примерами таких frameworks являются
Qt (отчасти) с их moc&siganl-slots и ROOT http://root.cern.ch/
с его CINTom. Именно на возможности получения "pointer to function (or class method) from function name" основана
реализация "Signal/Slot Communication Mechanism in ROOT",
которую я написал в далеком 1999 году ...

HTH. Марк

carrot ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.