必须充分掌握struct的使用,包括其构造和重载函数的写法:
#include <iostream> using namespace std; struct node { int x, y; node(){ } // node (int x, int y){ // this->x = x; // this->y = y; // } node (int x, int y) : x(x), y(y){ } node operator + (const node s){ node rt; rt.x = this->x + s.x; rt.y = this->y + s.y; return rt; } node operator * (const node s){ node rt; rt.x = this->x * s.x; rt.y = this->y * s.y; return rt; } bool operator ==(const node s){ if(s.x == this->x && s.y == this->y){ return 1; } else{ return 0; } } bool operator < (const node s){ if(this->x < s.x){ return 1; } else{ return 0; } } }; int main(){ node a, b; a.x = a.y = 1; b.x = b.y = 3; a = a + b; cout << "a: " << a.x << " " << a.y << endl; node c(1, 3); cout << "c: " << c.x << " " << c.y << endl; node d = c; cout << "d: " << d.x << " " << d.y << endl; if(d == c){ cout << "d = c" << endl; } if(a < c){ cout << "a < c" << endl; } else{ cout << "a !< c" << endl; } return 0; }