为什么“cout a function without call it (not f() but f;). Print 1 Always?”
在此代码中,该代码尝试在不使用括号的情况下“调用”名为 pr 的函数。然而,这实际上并不是调用该函数。相反,它将函数指针传递给 cout 函数。当函数指针隐式转换为 bool 值时,其计算结果为 true。由于 true 相当于 C 中的 1,因此输出始终为 1。
为了澄清,所提供代码中的以下几行没有调用 pr 函数:
pr;
cout 要真正调用 pr 函数,您需要使用像 pr().
这样的括号行为源于函数指针可以隐式转换为 bool 的事实。在 C 11 中,可以重载函数指针的运算符
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3