Вызов глобальной функции из объекта класса
Добавлено: 22 дек 2013, 18:32
Здравствуйте! Допустим, к примеру, имеется класс, который может хранить в себе адрес на функцию, а также метод, который вызовет эту функцию...
Объекты данного класса могут хранить и вызывать только void функции, которые без параметров... Если я хочу, чтоб объект делал всё тоже самое, но, допустим, с функцией с 2-мя параметрами, да ещё и возвращающая int, то, в данном случае, я делаю указатель на int функцию c 2-мя параметрами, дописываю в класс 2 переменные в которых будут храниться значения параметров, переделываю конструктор соответствующим образом, а также вызов функции в методе...
И вот у меня вопрос, есть ли такая возможность реализовать этот класс, чтобы он был универсален и не зависим от количества параметров и типа возвращающего значения функции, которые ему пытаются "втюхать", то есть, чтобы не приходилось его переделывать под разные варианты?
Код: Выделить всё
#include <iostream>
typedef void (*NEXT_Func)();
class caller{
NEXT_Func nextFunc;
public:
caller(NEXT_Func next){
nextFunc=next;
}
void call(){
nextFunc();
}
};
void func1(){
std::cout<<"!!!QwErTy!!!"<<std::endl;
}
int main(){
caller c1(func1);
c1.call();
return 0;
}
И вот у меня вопрос, есть ли такая возможность реализовать этот класс, чтобы он был универсален и не зависим от количества параметров и типа возвращающего значения функции, которые ему пытаются "втюхать", то есть, чтобы не приходилось его переделывать под разные варианты?