1

我已经使用了QDebug一段msvc2010时间的重载:

friend QDebug &operator<<(QDebug &debug, const UsingClass &uc)
{
    debug << uc.stringForStreaming();
    return debug;
}

但是,在MinGWgcc 4.6.2签名下无法识别,我必须将其更改为(无参考 &):

friend QDebug operator<<(QDebug debug, const UsingClass &uc)
{
    debug << uc.stringForStreaming();
    return debug;
}

不知何故,这让我感到惊讶,因为我已经检查了头文件QDebug并且那里的签名基本上是参考。

  1. 那么使用 重载运算符的正确签名是什么QDebug?SO:如何为 qDebug 重载 operator<<显示了没有参考的内容,但没有说明原因(不同的焦点)。
  2. 为什么第一个签名 (&) 在 msvc2010 中有效,但在 gcc 中失败?
4

0 回答 0