diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-03 17:11:43 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-08 10:21:07 +0100 |
| commit | 0c39051ba80f04b1177833a006f2d442a7170b56 (patch) | |
| tree | 9e657946a061b5b305f9cf75634db7b37e979eb3 /labb8/lib/StanfordCPPLib/point.h | |
| parent | 7b7f6808a7b2db2ed21103767434c1445f7815c2 (diff) | |
| download | tddd86-0c39051ba80f04b1177833a006f2d442a7170b56.tar.gz | |
add initial files l8
Diffstat (limited to 'labb8/lib/StanfordCPPLib/point.h')
| -rwxr-xr-x | labb8/lib/StanfordCPPLib/point.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/labb8/lib/StanfordCPPLib/point.h b/labb8/lib/StanfordCPPLib/point.h new file mode 100755 index 0000000..e138117 --- /dev/null +++ b/labb8/lib/StanfordCPPLib/point.h @@ -0,0 +1,113 @@ +/* + * File: point.h + * ------------- + * This file exports a class representing an integer-valued <i>x</i>-<i>y</i> + * pair. + */ + +#ifndef _point_h +#define _point_h + +#include <string> + +/* + * Class: Point + * ------------ + * This class represents an <i>x</i>-<i>y</i> coordinate point on a + * two-dimensional integer grid. If you need to work with real-valued points, + * you should use the <a href="gtypes.html"><code>gtypes.h</code></a> + * interface instead. + */ + +class Point { + +public: + +/* + * Constructor: Point + * Usage: Point origin; + * Point pt(x, y); + * ---------------------- + * Creates a <code>Point</code> object with the specified x and y coordinates. + * If the coordinates are not supplied, the default constructor sets these + * fields to 0. + */ + + Point(); + Point(int x, int y); + +/* + * Method: getX + * Usage: int x = pt.getX(); + * ------------------------- + * Returns the <i>x</i>-coordinate of the point. + */ + + int getX() const; + +/* + * Method: getY + * Usage: int y = pt.getY(); + * ------------------------- + * Returns the <i>y</i>-coordinate of the point. + */ + + int getY() const; + +/* + * Method: toString + * Usage: string str = pt.toString(); + * ---------------------------------- + * Returns a string representation of the <code>Point</code> in the form + * <code>"(x, y)"</code>. + */ + + std::string toString() const; + +/* + * Friend operator: == + * Usage: if (p1 == p2) ... + * ------------------------ + * Returns <code>true</code> if <code>p1</code> and <code>p2</code> + * are the same point. + */ + + bool operator==(const Point & p2) const; + +/* + * Friend operator: != + * Usage: if (p1 != p2) ... + * ------------------------ + * Returns <code>true</code> if <code>p1</code> and <code>p2</code> + * are different. + */ + + bool operator!=(const Point & p2) const; + +/* Private section */ + +/**********************************************************************/ +/* Note: Everything below this point in the file is logically part */ +/* of the implementation and should not be of interest to clients. */ +/**********************************************************************/ + +private: + +/* Instance variables */ + + int x; /* The x-coordinate of the point */ + int y; /* The y-coordinate of the point */ + +}; + +/* + * Operator: << + * Usage: cout << pt; + * ------------------ + * Overloads the <code><<</code> operator so that it is able + * to display <code>Point</code> values. + */ + +std::ostream & operator<<(std::ostream & os, const Point & pt); + +#endif |
