#include <iostream>
using namespace std;

struct Node{
int x;
int y;
};

// int * Node 时调用, 返回Node类型, Node = int * Node

Node operator * (int a, Node b){

Node r;

r.x = a * b.x;
r.y = a * b.y;

return r;
}

// int + Node 时调用, 返回Node类型, Node = int + Node
Node operator + (int a, Node b){

Node r;

r.x = a + b.x;
r.y = a + b.y;

return r;
}

// 相当于 ostream << a 时调用, 返回的是 ostream的引用类型。
// ((cout << a) << b) << endl;
ostream & operator << (ostream& o, Node a){
o << "x:" << a.x << " y:" << a.y << endl;
return o;
}

int main() {

Node k, m;
k.x = 1;
k.y = 2;

m = 3 * k;
cout << m;
return 0;
}