// vec.cpp #include #include #include "vec.h" using namespace std; template vec::vec(const T& x, const T& y, const T& z) : _x(x), _y(y), _z(z) {} template vec::vec(const vec& v) : _x(v._x), _y(v._y), _z(v._z) {} template vec operator+(const vec& v1, const vec& v2) { vec temp(v1); temp._x += v2._x; temp._y += v2._y; temp._z += v2._z; return temp; } template T vec::size() { return sqrt(_x*_x + _y*_y + _z*_z); } template void vec::show() { cout << "\n vec: (" << _x << ", " << _y << ", " << _z << ")"; } #ifdef TEST_VEC int main() { vec v1(1,1,1); vec v2(2,2,2); vec v3 = v1 + v2; v3.show(); cout << "\n size = " << v3.size(); vec v4(1,1,1); vec v5(-2,-2,-2); vec v6 = v4 + v5; v6.show(); cout << "\n size = " << v6.size(); cout << "\n\n"; } #endif