Back to slide -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'          templates/vers4-f14/prog.cc - A program that illustrate the template instantiation.Lecture 5 - slide 34 : 40
Program 3

// A program that illustrates how to use the parameterized Point template class

#include <iostream>
#include <string>
#include <vector>
#include "point.cc"           // Inclusion of the .cc (.cpp) file, not just .h file

const int Dim = 10;

int main(){
  using namespace std;

  Point<long int> pli1;       // Default dimension and default default value.

  Point<int,Dim,7> pi1, pi2;  // double is illegal as type parameter in this context,
                              // because non-integer constants are not allowed!
  Point<char, 4, 65> pc1;
  Point<> pi3;                // All three parameters are defaulted.

  // Diplacement int vectors:
  vector<int> displacement1 {1, 2, 3};

  vector<int> displacement2;
  for(int i = 0; i < Dim; i++) displacement2.push_back(i*2);

  // Move points
  pli1.move(displacement1);
  pi1.move(displacement2);
  pc1.move(displacement2);
  pi3.move(displacement1);

  // Print points:
  cout << "pli1: " << pli1 << std::endl;     // (1, 2, 3)
  cout << "pi1: "  << pi1 << std::endl;      // (7, 9, 11, 13, 15, 17, 19, 21, 23, 25)
  cout << "pc1: "  << pc1 << std::endl;      // (A, C, E, G)
  cout << "pi3: "  << pi3 << std::endl;      // (1, 2, 3)

  cout << "|pi1 - pi2| = " << pi1.distance_to(pi2) << endl;  // 90
}