你能解释一下它为什么会起作用以及为什么它会为我返回1.什么类型的?它有用吗?
#include <iostream>
class Foo
{
};
int main ()
{
Foo a(int x) ;
std::cout << a;
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*ian 11
是的,这是一个功能.在表达中
std::cout << a;
Run Code Online (Sandbox Code Playgroud)
该函数a转换为函数指针,类型Foo (*)(int).然后将函数指针转换为bool,因为operator<<重载bool是唯一可行的.由于它不是null,结果是true,打印为1.
(注意void*,与对象指针不同,函数指针不能隐式转换为.)