#include <iostream> #include <cstdlib> #include <stdarg.h> typedef int (*ptrFunc) ( int, ... ); int product ( int, ... ); int sum ( int, ... ); int main(void) { ptrFunc pf; pf = product; cout << (*pf) (3, 4, 12, 11) << endl; cout << (*pf) (4, 4, 2, 11, 9) << endl; pf = sum; cout << (*pf) (3, 4, 12, 11) << endl; cout << (*pf) (4, 4, 2, 11, 9) << endl; return EXIT_SUCCESS; } int product (int x, ... ) { va_list arg; int all = 1; va_start(arg,x); for (int i = 0; i < x; i++) all = all * va_arg(arg, int); va_end(arg); return all; } int sum (int x, ... ) { va_list arg; int all = 0; va_start(arg,x); for (int i = 0; i < x; i++) all = all + va_arg(arg, int); va_end(arg); return all; }