然后在C ++中有条件

Neo*_*Ser 12 c++ if-statement ada

Ada 除了布尔运算符and then,还具有if条件中使用的语句的出色功能。这允许在访问对象之前检查例如该对象是否不为null,如下所示:and

if Object /= null and then Object.Value > 5 then
   -- do something with the value
end if;
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用嵌套在C ++ w / o中表达类似的行为if

小智 17

好吧,Object在您的代码中的C ++中不能为NULL,因为它似乎不是指针。如果它是一个指针,您可以说:

 if (Object && Object->Value > 5 ) {
       // do something
 }
Run Code Online (Sandbox Code Playgroud)

在C ++中,&&运算符执行“短路评估”-如果最左边的操作数评估为false,则评估停止。

  • 您为什么说它似乎不是指针(或访问值,如Ada所称)?Ada可以很容易地拥有一个名为Access的变量,其访问类型为:Type Foo是访问栏;然后是Object:Foo;。 (2认同)
  • 为了扩展@egilhh的评论,“ Object.Value”是合法的取消引用,是“ Object.all.Value”的简写。 (2认同)