struct PT
{
double x, y;
PT() {}
PT(double x, double y) : x(x), y(y) {}
PT(const PT &p) : x(p.x), y(p.y) {}
PT operator + (const PT &p) const { return PT(x+p.x, y+p.y); }
PT operator - (const PT &p) const { return PT(x-p.x, y-p.y); }
PT operator * (double c) const { return PT(x*c, y*c ); }
PT operator / (double c) const { return PT(x/c, y/c ); }
};
此代码片段来自http://stanford.edu/~liszt90/acm/notebook.html#file8。我无法理解这段代码。有人请解释一下。我知道这是运算符重载,但无法理解运算符重载是如何发生的。
有人也可以解释这些行:
PT() {}
PT(double x, double y) : x(x), y(y) {}
PT(const PT &p) : x(p.x), y(p.y) {}
结构也有构造函数吗?