| templates/vers4/point.h - A type parameterized variant of class Point - point.h. | Lecture 6 - slide 6 : 46 Program 1 |
// Multi dimensional point. The dimension and a default value is supplied as a template parameter.
// Defaults are provided for all three template parameters.
#include <vector>
template<class C, int dim, C def> class Point;
template<class C, int dim, C def> std::ostream& operator<<
(std::ostream& s, const Point<C,dim,def>& p);
class PointDimProblem{};
template<class C = int, int dim = 3, C def = 0>class Point {
private:
C values[dim]; // An array of C values
public:
Point();
C get (int i) const;
Point<C, dim, def>& move(const std::vector<int>&);
double distance_to(Point<C, dim, def>);
friend std::ostream& operator<< <>
(std::ostream&, const Point<C, dim, def>&);
};