你好,我有一个简单的问题。 由于我不太熟悉C ++而我现在正在查看一些代码,我想知道在类似于这个函数中发生了什么:
#include "SomeInterface.h"
class SomeClass {
public:
...
void SomeFunction(...){
if (interface) { //What is asked here exactly?
/*do something*/
}
}
/*...*/
protected:
SomeInterface* interface;
}
由于我来自Java,我想知道在if-bracket中提出了什么问题。 当变量属于bool类型时,我习惯于只能在if括号中放置一个孤独的变量名。但是因为这是一个自定义界面类型,我很困惑。
提前感谢您的回答。
答案 0 :(得分:5)
由于interface
是一个指针,所以
if (interface)
相当于
if (interface != nullptr)
指针可隐式转换为bool
,其中nullptr
为false
,其他任何内容都为true
。