// RefArgs.cpp - A program to demonstrate references and reference // arguments in functions. // Written by Wayne Pollock, Tampa Florida 2000 #include using namespace std; void safe ( int num ) // Pass by copy is used here { cout << "In function \"safe\", arg \"num\" was " << num; ++num; cout << " and is now " << num << ".\n"; return; } void dangerous ( int& num ) // Pass by reference is used here { cout << "In function \"dangerous\", arg \"num\" was " << num; ++num; cout << " and is now " << num << ".\n"; return; } int main () { int foo = 3; int& ref1 = foo; // ref1 and foo are two names for the same variable. cout << "In main, foo = " << foo << " and ref1 = " << ref1 << ".\n"; cout << "\nCalling function safe() now..." << endl; safe( foo ); cout << "Back in main, foo = " << foo << " and ref1 = " << ref1 << ".\n"; cout << "\nCalling function dangerous() now..." << endl; dangerous( foo ); cout << "Back in main, foo = " << foo << " and ref1 = " << ref1 << ".\n"; return 0; } #ifdef COMMENTED_OUT // Output of above program: In main, foo = 3 and ref1 = 3. Calling function safe() now... In function "safe", arg "num" was 3 and is now 4. Back in main, foo = 3 and ref1 = 3. Calling function dangerous() now... In function "dangerous", arg "num" was 3 and is now 4. Back in main, foo = 4 and ref1 = 4. #endif