#include <iostream.h> typedef double real; class RealFunction { public: real operator()()=0; ~RealFunction(){}; }; class Square: RealFunction { public: real operator(()) {return x*x;} Square(real xinput):x(xinput){} private: real x; }; class Cube: RealFunction { public: real operator() {return x*x*x;} Cube(real xinput):x(xinput){} private: real x; }; void ExtFunc(RealFunction f) { cout << f() <<endl; } void main() { real y=5; Square sq(y); Cube cu(y); ExtFunc(sq); ExtFunc(cu); }