diff --git a/assignment3.html b/assignment3.html index 2fe0ea6..05f5989 100644 --- a/assignment3.html +++ b/assignment3.html @@ -303,10 +303,8 @@

Part 1: Maze solving

You have been provided a Coordinate class in maze/src/common.hpp, a simple wrapper around -two integers representing zero-based maze coordinates. We have given you -two constructors and an assignment operator for this class to make it -easier to pass-by-value and return-by-value. It is worth your time to -study the provided code before you start!

+two integers representing zero-based maze coordinates. When you work with this +class, think of what it means to pass-by-value and return-by-value.

Part 1.1: CoordinateStack class

diff --git a/maze/src/common.hpp b/maze/src/common.hpp index bd220e3..9dbf786 100644 --- a/maze/src/common.hpp +++ b/maze/src/common.hpp @@ -60,16 +60,38 @@ class Coordinate int x; int y; + // Constructor Coordinate(int i = 0, int j = 0) { x = i; y = j; } + // This is a "copy constructor." It is actually identical to the default + // copy constructor that C++ provides; we only include it for teaching + // purposes. + // Example: + // Coordinate a(1, 2); + // Coordinate b = a; // Copy constructor gets called to construct `b` + // // The argument to the constructor is a const + // // reference to `a` + // The copy constructor also gets called when you pass a Coordinate as an + // argument to a function, and when your return a Coordinate from a + // function. + // See if you want to learn + // more about copy constructors and assignment operators. Coordinate(const Coordinate &other) { x = other.x; y = other.y; } + // This is an "assignment operator." It is actually identical to the default + // assignment operator that C++ provides; we only include it for teaching + // purposes. + // Example: + // Coordinate a(1, 2); + // Coordinate b(2, 3); + // b = a; // Assignment operator gets called with a const reference + // // to `a` as the argument. Assigns to b. Coordinate& operator= (const Coordinate &source) { x = source.x; y = source.y;