//  File: fover2.C
//
//  Function overloading illustrated

#include <iostream.h>

// The following functions have the same signature because
// return types are not considered part of a function's signature

void foo (int a, int b)     { cout << "no return\n" ;               }

int  foo (int a, int b)     { cout << "returns int\n" ; return 1 ;  }


main() {
   int n=1, m=2 ;
   float x=3.1, y=2.4 ;

   foo(n,m) ;
   foo(n,x) ;
   foo(x,n) ;
   foo(x,y) ;
}
