005
10.06.2004, 23:49 Uhr
0xdeadbeef
Gott (Operator)
|
Wenn ich mich nicht vertan habe (ist nur grad so hingekladdet):
C++: |
#include <cstdlib>
class point { private: double x, y; public: point(double ix, double iy) : x(ix), y(iy) { }
double &operator[](unsigned i) { if(i == 0) return x; if(i == 1) return y; throw i; } };
class rectangle { private: point upper_left, lower_right;
public: rectangle(const point &ul, const point &lr) : upper_left(ul), lower_right(lr) {} rectangle(const point &ul, double width, double height) : upper_left(ul), lower_right(ul) { lower_right[0] += width; lower_right[1] += height; }
rectangle operator&(const rectangle &r) { return rectangle(point(std::min(upper_left [0], r.upper_left [0]), std::min(upper_left [1], r.upper_left [1])), point(std::min(lower_right[0], r.lower_right[0]), std::min(lower_right[1], r.lower_right[1]))); }
rectangle operator|(const rectangle &r) { return rectangle(point(std::max(upper_left [0], r.upper_left [0]), std::max(upper_left [1], r.upper_left [1])), point(std::max(lower_right[0], r.lower_right[0]), std::max(lower_right[1], r.lower_right[1]))); } };
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 10.06.2004 um 23:53 Uhr von 0xdeadbeef editiert. |