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 ); }
};
Dieser Codeschnipsel stammt aus http://stanford.edu/~liszt90/acm/notebook.html#file8 . Ich bin nicht in der Lage, dieses Stück Code zu verstehen. Jemand bitte erklären diese. Ich weiß, dass es sich um Operatorüberladung handelt, aber ich kann nicht verstehen, wie genau die Operatorüberladung abläuft.
Kann jemand auch diese Zeilen erklären:
PT() {}
PT(double x, double y) : x(x), y(y) {}
PT(const PT &p) : x(p.x), y(p.y) {}
Haben Strukturen auch Konstrukteure?