c – 解释需要不寻常的一段代码
发布时间:2020-12-16 10:11:05 所属栏目:百科 来源:网络整理
导读:你能解释一下它为什么会起作用以及为什么它会为我返回1. 什么类型的?它有用吗? #include iostreamclass Foo{};int main (){ Foo a(int x) ; std::cout a;} 解决方法 是的,这是一个功能.在表达中 std::cout a; 函数a转换为函数指针,键入Foo(*)(int).然后将
你能解释一下它为什么会起作用以及为什么它会为我返回1.
什么类型的?它有用吗? #include <iostream> class Foo { }; int main () { Foo a(int x) ; std::cout << a; } 解决方法
是的,这是一个功能.在表达中
std::cout << a; 函数a转换为函数指针,键入Foo(*)(int).然后将函数指针转换为bool,因为运算符<<超载服用bool是唯一可行的.由于它不为null,结果为true,打印为1. (注意,与对象指针不同,函数指针不能隐式转换为void *.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |