#include
using namespace std;
template
class vector
{
private :
T x,y;
public:
vector(T xx=0,T yy=0)
{ x=xx; y=yy; }
vector(const vector &p )
{ x=p.x; y=p.y; }
friend vector<T> operator +(vector<T> &q,vector<T>& p);
vector<T >& operator-(vector <T>& p);
friend T operator*(vector<T>& a,vector<T>& b);
friend ostream & operator <<(ostream &output,vector<T> & p);
};
template
vector operator+(vector & p,vector &q)
{
T i=q.x+p.x;
T j=p.y +q.y;
return vector(i,j);
}
template
vector & vector::operator-(vector & p)
{
x-=p.x;
y-=p.y;
return *this;
}
template
T operator*(vector & a,vector &b)
{
T c;
c=a.x*b.x+b.y*a.y;
return c;
}
template
ostream & operator <<(ostream & output,vector &p)
{
output<
return output;
}
int main()
{
vector a(1.2,3.4);
vectorb(8,7.8);
vectorc;
c=a+b;
cout<<a<<endl;
a-b;
cout<<b<<endl;
cout<<a*b<<endl;
getchar();
return 0;
}