gpt4 book ai didi

c++ - 重载运算符 << 返回 ostream&

转载 作者:行者123 更新时间:2023-11-28 01:02:58 25 4
gpt4 key购买 nike

我在示例应用程序中有以下代码:

ostream& operator<< (ostream& os, const ReferenceTest& rt)
{
os << rt.counter; //In this scenario, rt has a public int called counter
}

令我惊讶的是,使用 GCC 4.6.1 编译这段代码没有问题。由于我预期的原因使用 Visual Studio 2010 时失败,即我没有返回对 ostream 的引用。但是,为两个平台编译时程序的输出是相同的(我有一个简单的 main() 用于写入测试输出)。

符合哪些标准?我在这里遗漏了什么明显的东西吗?

-德里克

最佳答案

您是否在启用警告的情况下进行编译?我收到 warning: control reaches end of non-void function with g++。

您当然不希望编译器在您的代码出现第一个错误时停止。您希望它在一个膨胀的 Foop 中尽可能多地捕捉。为此,编译器必须修补您的错误代码,以便它可以继续。在这种情况下,补丁很明显:返回作为参数提供的流。

永远不要相信编译器免费提供的那些“修复”。他们绝不是免费的。改为修复您的代码。

并且始终在启用警告的情况下进行编译。

关于c++ - 重载运算符 << 返回 ostream&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com