C++ if状态条件如何在非布尔类型上工作?

C++ if状态条件如何在非布尔类型上工作?,c++,C++,IE当if语句检查特定对象时,它如何知道调用什么?说我们有 if (std::cin) doSomething(); C++调用std::cin.good()。是什么机制告诉C++调用好< /代码>函数?< /p> if状态条件如何在非布尔类型上工作 表达式的结果将转换为bool 对于类类型,转换是通过转换运算符实现的-主要是bool转换运算符,或者在没有转换运算符的情况下,可能会转换为非用户定义的转换为bool的类型,例如整数或指针 为了将来的参考,我使用谷歌输入来查找重复:如果cin工作如

IE当if语句检查特定对象时,它如何知道调用什么?说我们有

if (std::cin) doSomething();
C++调用std::cin.good()。是什么机制告诉C++调用<代码>好< /代码>函数?< /p> if状态条件如何在非布尔类型上工作

表达式的结果将转换为bool


对于类类型,转换是通过转换运算符实现的-主要是
bool
转换运算符,或者在没有转换运算符的情况下,可能会转换为非用户定义的转换为
bool
的类型,例如整数或指针

为了将来的参考,我使用谷歌输入来查找重复:如果cin工作如何?网址:stackoverflow.com