Source of swap2.cpp


  1: //swap2.cpp
  2: //Illustrates a Swap template function.

  4: #include <iostream>
  5: #include <string>
  6: using namespace std;


  9: template<typename T> //Note use of "typename" rather than "class"
 10: void Swap
 11: (
 12:     T& first, //inout
 13:     T& second //inout
 14: )
 15: /**<
 16: Swaps the values in two variables.
 17: @pre <em>first</em> and <em>second</em> have been initialized.
 18: @post The values in <em>first</em> and <em>second</em have
 19: been interchanged.
 20: */
 21: {
 22:     T temp = first;
 23:     first = second;
 24:     second = temp;
 25: }


 28: int main()
 29: {
 30:     int a = 7, b = 9;
 31:     double x = 2.3, y = 7.4;
 32:     string firstName = "John", lastName = "Henry";

 34:     cout << "\na is " << a << " and b is " << b << ".\n";
 35:     Swap(a, b);
 36:     cout << "Now a is " << a << " and b is " << b << ".\n\n";

 38:     cout << "x is " << x << " and y is " << y << ".\n";
 39:     Swap(x, y);
 40:     cout << "Now x is " << x << " and y is " << y << ".\n\n";

 42:     cout << "firstName is " << firstName 
 43:          << " and lastName is " << lastName << ".\n";
 44:     Swap(firstName, lastName);
 45:     cout << "Now firstName is " << firstName
 46:          << " and lastName is " << lastName << ".\n\n";

 48:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 49: }
 50: