Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как использовать указатель на функцию с любыми аргументами и возрващае
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
Ramozarti
Есть код:
CODE

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>

//---------------------------------------------------------------------------

int SomeFunc (int a, int cool.gif {
cout << a << " and " << b;
}
class TestClass {
private:
void (*func) (void) ;
public:
TestClass ( void (*f) (void)) {
func = f;
}

SomeFunc() {
func();
}
};
#pragma argsused
int main(int argc, char* argv[])
{
TestClass t ( (void (*)(void)) SomeFunc);
t.SomeFunc();

char a;
cin >> a;
return 0;
}
//---------------------------------------------------------------------------


Правильно ли я определил func как указатель на функцию с любыми аргументами и любым возвращаемым значением? В SomeFunc() происходит вызов функции func(); по указателю. Как можно передать параметры в функцию?
grigsoft
Ты определил func как функцию без параметров и не возвращающую значений. Используя всякие извращения с приведениями типов, ты, конечно, сможешь передавать туда любую фукцию. Только главный вопрос - нафига? Каждую конкретную фукцию все равно надо вызывать с конкретными параметрами. А откуда ты будешь знать, какие передавать параметры? Если ты пытаешься сделать универсальный класс-обертку для вызова произвольной фукции, то смотри на реализацию functor в бусте, локи, или еще где - ]]>http://www.rsdn.ru/Forum/?mid=908731]]>
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.