c++ - 如何使运算符 << 的左操作数成为函数?

标签 c++ qt operator-overloading

void operator<< (const Integer& left, const Integer& right)
{
    cout << "\n: " << right.i;
}

可以这样访问:

Integer obj;
obj << 5 << 3 << 2;

很好:

但是qDebugqdebug() << 2;一样工作

表示<<的左操作数运算符是一个函数。

用户定义函数的语法应该是什么,以便我可以写:
myfunc() << 2;

最佳答案

左操作数不是函数,它是函数返回的值。具体来说,qDebug()返回 QDebug 的一个实例,它有大约 20 个重载 <<定义。

关于c++ - 如何使运算符 << 的左操作数成为函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700307/

相关文章:

qt - 使用 QtAV 制作视频缩略图

qt - 新的拖放机制在 Qt-Quick (Qt 5.3) 中无法按预期工作

c++ - 当我在 QT 中为 QInputDialog 输入密码时,如何设置背景非事件和灰色?

c++ - 数组运算符 [] 重载 const 和非常量版本

c++ - C++中有没有办法同时在多个线程上调用join?

c++ - C/C++ 中的指针及其内存空间

c++ - 如何用 2 个 LinkedLls 重载 +=

c++ - 知道为什么我的 C++ 程序会出现这两个错误吗?

c++ - CoCreateInstance - 反过来是什么?

c++ - 如何创建以当前时间命名的文件?