Seltsame C ++ Syntax?

7

Das ist vielleicht eine blöde Frage, aber ich habe einen Code mit der folgenden Zeile:

%Vor%

Ich kenne den ternären Operator, aber es sind die Gleichheitszeichen, die mich ein wenig verwirren. Kann mir jemand eine Erklärung geben? Danke.

    
Cemre 02.07.2012, 20:16
quelle

5 Antworten

16

Geschrieben, es ist

%Vor%

Es ist jedoch sehr hässlich, ich würde das nicht in Ihrem Code empfehlen.

Der empfohlene Weg wäre, es wie folgt zu schreiben (verwenden Sie die Initialisierung statt der Zuweisung):

%Vor%     
houbysoft 02.07.2012, 20:18
quelle
6

Ich würde das empfehlen:

%Vor%

Es ist knapp, aber sauber und ordentlich.

Außerdem wird Initialisierung statt Zuweisung verwendet. Sie sollten, wo immer möglich, Initialisierung über Zuweisung vorziehen.

    
Nawaz 02.07.2012 20:22
quelle
5

Sie sehen sich eine verkettete Aufgabe an.

Es ist dasselbe wie:

%Vor%     
NominSim 02.07.2012 20:19
quelle
2

Der ternäre Operator gibt einen Wert zurück; Basierend auf dem booleschen Wert UseDummySolver wird entweder ein Dummy-Solver zurückgegeben oder eine neue Instanz von STPSolver() zurückgegeben. Dieser Rückgabewert wird dann in STP und S gespeichert.

    
steveha 02.07.2012 20:18
quelle
0

Ich würde das entweder bevorzugen:

%Vor%

oder das:

%Vor%

Beide vermeiden ein Problem mit dem Code, den Sie dort haben: Wir brauchen nicht zu entscheiden, welcher Zeiger delete aufrufen soll, wenn die Objekte den Bereich verlassen (oder erinnern Sie sich an die Notwendigkeit, delete aufzurufen) überhaupt). Stattdessen warten wir nur, bis die Variablen den Bereich verlassen, dann wird das Solver -Objekt automatisch entfernt. STP ist im ersten Fall eindeutig nur eine andere Art des Zugriffs auf das Objekt, während es im Umfang ist, im zweiten Fall ist es ein unabhängiger "Miteigentümer" des Objekts, und beide Zeiger können unabhängig voneinander neu zugewiesen werden. p>     

leftaroundabout 02.07.2012 22:19
quelle

Tags und Links