#ifndef MT1Q2_H #define MT1Q2_H /////////////////////////////////////////////////////////////// // MT1Q2.h - logger // // // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2012 // /////////////////////////////////////////////////////////////// #include class logger : public std::string { public: logger(const std::string& title) { char* pTemp = new char[title.size() + 1]; for(size_t i=0; i<=title.size(); ++i) pTemp[i] = title[i]; pTitle = pTemp; } ~logger() { delete[] pTitle; } logger& operator=(const logger& l) { if(this == &l) return *this; static_cast(*this) = l; size_t len = strlen(l.pTitle); char* pTemp = new char[len + 1]; for(size_t i=0; i<=len; ++i) pTemp[i] = l.pTitle[i]; delete[] pTitle; pTitle = pTemp; return *this; } std::string title() { return std::string(pTitle); } private: logger(const logger&); // not required by questions const char* pTitle; }; #endif