Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////////////vec3d.h///////////////
- //...some headers
- template <class T>
- class Vec3D
- {
- public:
- Vec3D(void);
- Vec3D(T x, T y, T z);
- Vec3D(const Vec3D<T> &v);
- explicit Vec3D(Vec3D<T> *p);
- //... some more functions
- T _x;
- T _y;
- T _z;
- };
- template <class T> const Vec3D<T> operator*(const Vec3D<T> &v, T factor);
- template <class T> const Vec3D<T> operator*(T factor, const Vec3D<T> &v);
- template <class T> const Vec3D<T> operator*(const Vec3D<T> &v1,
- const Vec3D<T> &v2);
- //... some more functions
- //////////////////////////////////////////////////////////////vec3d.cpp//////////////
- template<class T>
- Vec3D<T>::Vec3D(void):
- {
- _x = T();
- _y = T();
- _z = T();
- }
- template<class T>
- Vec3D<T>::Vec3D(T X, T Y, T Z):
- {
- _x = X;
- _y = Y;
- _z = Z;
- }
- template<class T>
- Vec3D<T>::Vec3D(const Vec3D<T> &v):
- {
- _x = v._x;
- _y = v._y;
- _z = v._z;
- }
- template<class T>
- Vec3D<T>::Vec3D(Vec3D<T> *p):
- {
- _x = p->_x;
- _y = p->_y;
- _z = p->_z;
- }
- template<class T>
- const Vec3D<T> operator*(const Vec3D<T> &v, T factor)
- {
- return Vec3D<T>(v._x * factor, v._y * factor, v._z * factor);
- }
- template<class T>
- const Vec3D<T> operator*(T factor, const Vec3D<T> &v)
- {
- return Vec3D<T>(v._x * factor, v._y * factor, v._z * factor);
- }
- template<class T>
- const Vec3D<T> operator*(const Vec3D<T> &v1, const Vec3D<T> &v2)
- {
- return Vec3D<T>(v1._x * v2._x, v1._y * v2._y, v1._z * v2._z);
- }
- // instantiation
- template class Vec3D<double>;
Advertisement
Add Comment
Please, Sign In to add comment