Может быть, я упускаю что-то довольно простое, но у меня происходит сбой, когда я разыменовываю указатель, даже если я проверяю точку в самом начале выражения.
if( var1 &&
bool1 || bool2 &&
var1->DoSomething() )
{
}
var1 является нулевым указателем, но Var1->Dosomething() все еще вызывается. Насколько я понимаю, && и || Оператор в C++ является коротким замыканием, поэтому, если бы var1 был нулевым, он просто завершился бы в самом начале. Или есть что-то еще, что мне не хватает?