+bool Position::operator< (const Position& rhs) const
+{
+ if (major_ < rhs.major_)
+ return true;
+
+ if (major_ == rhs.major_)
+ if (minor_ < rhs.minor_)
+ return true;
+
+ return false;
+}
+
+bool Position::operator> (const Position& rhs) const
+{
+ if (major_ > rhs.major_)
+ return true;
+
+ if (major_ == rhs.major_)
+ if (minor_ > rhs.minor_)
+ return true;
+
+ return false;
+}
+
+Position Position::operator- (const Position& rhs) const
+{
+ Position temp;
+
+ int major = major_ - rhs.major_;
+ int minor = minor_ - rhs.minor_;
+
+ /* Check for underflow */
+ if (minor < 0)
+ {
+ minor += 10;
+ major -= 1;
+ }
+
+ temp.major_ = major;
+ temp.minor_ = minor;
+
+ return temp;
+}
+
+Position::operator float() const
+{
+ float temp;
+
+ temp = major_;
+ temp += minor_ / 10.0;
+
+ return temp;
+}
+
+Position::operator int() const
+{
+ return major_;
+}
+
+std::ostream& operator<< (std::ostream& os, const Position& rhs)
+{
+ os << "Position(" << rhs.major_ << "." << rhs.minor_ << ")";
+ return os;
+}
+