Back to slide -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'          references/ref1-bad.cc - A function that attempts to return references to local variables.Lecture 2 - slide 15 : 29
Program 4

// Annother illustration of C++ reference parameters. 
// Attempting to return a reference to a local variable. Compiles with warnings.

#include <iostream>
#include <string>

int& f(bool b){
  int i = 5, j = 10;

  std::cout << "i: " << i << "  ";
  std::cout << "j: " << j << std::endl;

  if (b)
    return i;     // error (warning) Reference to local variable returned.
  else 
    return j;     // error (warning): Reference to local variable returned.
}

int main()
{
  using namespace std;

  int a, b;
  a = b = 0;

  f(true) = 15;          
  f(false) = 20;         
  f(true) = 25;          
}