你能解释一下它为什么有效以及为什么它为我返回 1 吗? a是什么类型?是函数吗?
#include <iostream>
class Foo
{
};
int main ()
{
Foo a(int x) ;
std::cout << a;
}
最佳答案
是的,这是一个函数。在表达式中
std::cout << a;
函数a
转换为函数指针,类型 Foo (*)(int)
.然后将函数指针转换为 bool
,因为 operator<<
重载bool
是唯一可行的。由于它不为空,因此结果为 true
, 打印为 1。
(请注意,与对象指针不同,函数指针不能隐式转换为 void*
。)
关于c++ - 异常代码的解释需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490064/