C++ Function Overloading a function with reference parameters

Description

C++ Function Overloading a function with reference parameters

#include <iostream>

double larger(double a, double b);               // Non-reference parameters
long& larger(long& a, long& b);                  // lvalue reference parameters

int main() {/*from w  w  w  .j  a  v  a 2  s  .  co  m*/
  double a_double {1.5}, b_double {2.5};
  std::cout << "The larger of double values "
            << a_double << " and " << b_double << " is "
            << larger(a_double, b_double) << std::endl;

  int a_int {15}, b_int {25};
  std::cout << "The larger of int values "
            << a_int << " and " << b_int << " is "
            << larger(static_cast<long>(a_int), static_cast<long>(b_int))
            << std::endl;
}

// Returns the larger of two floating point values
double larger(double a, double b)
{
  std::cout << "double larger() called." << std::endl;
  return a > b ? a : b;
}

// Returns the larger of two long references
long& larger(long& a, long& b)
{
  std::cout << "long ref larger() called" << std::endl;
  return a>b ? a : b;
}



PreviousNext

Related