#include #include "pstring.h" Pstring::Pstring(const string * s) : myString(s) // post: represent s { } void Pstring::print(ostream& out) const // post: *this written to out { out << *myString; } bool Pstring::equals(const Pstring& rhs) const // post: return true iff Pstrings are equal (as strings) { return *myString == *(rhs.myString); } bool Pstring::less(const Pstring& rhs) const // post: return true iff less than rhs (as string) { return *myString < *(rhs.myString); } ostream& operator<<(ostream& out, const Pstring& p) // post: p written to out, out returned { p.print(out); return out; } bool operator == (const Pstring& lhs, const Pstring& rhs) // post: return true iff lhs == rhs (as strings) { return lhs.equals(rhs); } bool operator < (const Pstring& lhs, const Pstring& rhs) // post: return true iff lhs < rhs (as strings) { return lhs.less(rhs); } Pstring::operator string() const // post: return string equivalent { return *myString; }