如何重载操作数<<像ostream样式一样使用

时间:2014-06-13 15:34:11

标签: c++ multithreading mutex ostream

我使用线程并且需要使用互斥锁保护std :: cout操作,但我不知道如何重载运算符<<按顺序使用它:

myOut << "hello " << 55 << " world" << false << 45.4f << std::endl;

如果有人可以帮助我,我会感谢你。

1 个答案:

答案 0 :(得分:1)

谢谢大家,但我解决了这个问题,很容易但重复,我需要让运营商&lt;&lt;要返回MyClass&amp ;,然后我使用此返回值来调用运算符&lt;&lt;我想要多次,像这样:

    Log& operator<<(const std::string& p){
    std::lock_guard<std::mutex> locker(mutex);
    std::cout << p;
            return *this;
}

    Log& operator<<(const std::string& p){
    std::lock_guard<std::mutex> locker(mutex);
    std::cout << p.c_str();
            return *this;
}

但是需要为你想要使用的任何类型重载,它们只是为它创建一个全局变量