#include /* ------------------------------------------------------------- Definition of SumSquare The parameter "f" is a function; to convey this to the C++ compiler, we use a syntax that is similar to a function declaration ( float f(float) ) ------------------------------------------------------------- */ float SumSquare(float f(float), float a, float b) { return( f(a) + f(b) ); } int main(int param1, char *param2) { float x, sum; extern float Square(float); // (1) Declare Square before its use x = Square(5); // (2a) Now you can use Square sum = SumSquare(Square, 3, 4); // (2b) You are using Square again // (as a parameter to a function) // NOTE: you are using "SumSquare" here // also. It is OK, because it // has been DEFINED previously cout << " 3^2 + 4^2 = " << sum << "\n"; }