小编Dhe*_*wal的帖子

如何用cout样式接口编写一个记录器类(logger <<"错误:"<< val << endl;)

我想创建一个logger类,使用这样的功能:

Logger log;
log << "Error: " << value << "seen" << endl;
Run Code Online (Sandbox Code Playgroud)

这应该打印一个自定义格式的消息.例如"12-09-2009 11:22:33错误5见"

我的简单类目前看起来像这样:

class Logger {
    private:
        ostringstream oss;
    public:
        template <typename T>
        Logger& operator<<(T a);
}

template <typename T>
Logger& Logger::operator<<(T a) {
    oss << a;
    return *this;
}

void functionTest(void) {
    Logger log;
    log << "Error: " << 5 << " seen";
}
Run Code Online (Sandbox Code Playgroud)

这将导致oss正确地具有缓冲区"Error:5 seen".但我不知道我需要编写/修改其他功能,以便在屏幕上打印某些内容.有谁知道如何使这个工作或是否有另一种方法来设计这个类让我的功能工作?

c++ logging cout operator-overloading operators

6
推荐指数
1
解决办法
4078
查看次数

标签 统计

c++ ×1

cout ×1

logging ×1

operator-overloading ×1

operators ×1