Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- class Log {
- public:
- virtual void write(const char* msg) = 0;
- virtual std::string toString(){return logString;}
- protected:
- std::string logString;
- };
- class ConsoleLog : public Log {
- public:
- void write(const char* msg){s << msg << "\n"; logString += msg;}
- protected:
- std::ostringstream s;
- };
- class StandardLog : public Log {
- public:
- void write(const char* msg){std::cout << msg << std::endl; logString += msg;}
- };
- class Logger {
- public:
- Logger(){log = new StandardLog();}
- Logger(Log* log){this->log = log;}
- void write(const char* msg){log->write(msg);}
- std::string toString(){return log->toString();}
- protected:
- Log* log;// = new StandardLog();
- };
- int main()
- {
- Logger logger;//new ConsoleLog());
- logger.write("this is a test message");
- std::cout << logger.toString() << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement