The arithmetics of the program are incorrect

mvector.h

Code:#include <cmath> #ifndef _MVECTOR_H #define _MVECTOR_H namespace math { class Vector { public: float x; float y; float z; Vector(float a=0,float b=0,float c=0) { x=a; y=b; z=c; } Vector operator+(Vector &v1) { Vector tmp; tmp.x=v1.x+x; tmp.y=v1.y+y; tmp.z=v1.z+z; return tmp; }; Vector operator-(Vector v1) { Vector tmp; tmp.x=x-v1.x; tmp.y=y-v1.y; tmp.y=z-v1.z; return tmp; }; float VecLength(Vector v) { return sqrt(pow(v.x,2)+pow(v.y,2)+pow(v.z,2)); }; float DotProduct(Vector v1,Vector v2) { return (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); } Vector CrossProduct(Vector v1, Vector v2) { Vector temp; temp.x=v1.y*v2.z - v1.z*v2.y; temp.y=v1.z*v2.x - v1.x*v2.z; temp.z=v1.x*v2.y - v1.y*v2.x; return temp; }; }; } #endif

main.cpp

for some reason it outputs:Code:#include <iostream> #include <cmath> #include "Mvector.h" using namespace math; using namespace std; Vector a= Vector(1,-8,-3); Vector b=Vector(2,2,3); Vector c= a-b; int main() { std::cout <<c.x<< std::endl; std::cout <<c.y<< std::endl; std::cout <<c.z<< std::endl; return 0; }

-1

-6

0

whats wrong?