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) {}
構造体にもコンストラクターがありますか?