#include <iostream>
#include <string>
using namespace std;
class Vector
{
public:
Vector(int, int);
Vector operator+(Vector); //运算符重载
Vector operator-(Vector);
int operator*(Vector);
void print(void);
private:
int x, y;
};
Vector::Vector(int x, int y)
{
this -> x = x;
this -> y = y;
}
Vector Vector::operator+(Vector rhs) //Right Hand Side,约定俗成
{
Vector sum(x + rhs.x, y + rhs.y);
return sum;
}
Vector Vector::operator-(Vector rhs)
{
rhs.x = -rhs.x;
rhs.y = -rhs.y;
return operator+(rhs);
}
int Vector::operator*(Vector rhs)
{
int result;
result = x * rhs.x + y * rhs.y;
return result;
}
void Vector::print(void)
{
cout << "(" << x << "," << y << ")";
}
int main()
{
Vector a(1, 2), b(4, 6);
Vector c(0, 0);
a.print();
cout << "和";
b.print();
cout << endl;
c = a + b; //使用运算符操作对象
cout << "加法:";
c.print();
cout << endl << "减法:";
c = a - b;
c.print();
cout << endl << "乘法:" << a * b << endl;
return 0;
}