In C++ Initialisieren Sie eine Variable in einem if-Anweisung initialisieren können, etwa so:Pro/con: eine Variable in einer bedingten Anweisung
if (CThing* pThing = GetThing())
{
}
Warum sollte man diese schlecht oder gut Stil in Betracht ziehen? Was sind die Vor- und Nachteile?
Persönlich mag ich diesen Stil, weil es den Umfang der pThing-Variable begrenzt, so dass es nie versehentlich verwendet werden kann, wenn es NULL ist. Allerdings Ich mag nicht, dass Sie dies nicht tun können:
if (CThing* pThing = GetThing() && pThing->IsReallySomeThing())
{
}
Wenn es einen Weg gibt, die über Arbeit, bitte posten zu machen. Aber wenn das nicht möglich ist, möchte ich immer noch wissen warum. Diese
Question borrowed from here, similar topic but PHP.
"(A * a = neues A) && a-> test()" Dies ist kein Standard-C++. (-1) –
Ich werde diese Antwort für die technische Ausführlichkeit akzeptieren. Die Diskussion darüber, was besser ist, ist in der Tat sehr subjektiv, ich bevorzuge den Stil von meinem ersten Post, aber mein TD will nicht, dass ich es benutze, also tue ich es nicht. Ich kann immer ein zusätzliches Paar Klammern verwenden, um den Umfang als Kompromiss zu begrenzen. – steffenj