Was ist der Unterschied zwischen (int) x und int (x) in C ++?


Antwort 1:
(int) x; // wandelt x von einem anderen Typ nach int um

Bedeutet eine C-Besetzung von jedem Typ x zu int. Und,

int (x); // bedeutet int x;

bedeutet nur int x; …

Versuchen Sie, keine dieser Formen zu verwenden, da die erste Form zwar legal ist (im besten Fall schlecht), und wenn es wirklich nötig ist, sollten Sie static_cast <> verwenden, um wirklich klar zu machen, was passiert (also keine Überraschungen) Die zweite ist einfach verwirrend, da die Klammern überflüssig sind.


Antwort 2:

Es gibt keinen Unterschied.

Im Allgemeinen sind in C ++ T (x) ("Funktionsstilumwandlung") und (T) x ("C-Stilumwandlung") zwei äquivalente Syntaxformen der expliziten Typumwandlung.

Der einzige Unterschied besteht darin, dass die T (x) -Form erfordert, dass T ein "einfacher Typspezifizierer" ist. Dies bedeutet grob, dass es sich um ein einzelnes Token handelt: Sie können kein vorzeichenloses int (x) oder int * (x) schreiben.


Antwort 3:

Es gibt keinen Unterschied.

Im Allgemeinen sind in C ++ T (x) ("Funktionsstilumwandlung") und (T) x ("C-Stilumwandlung") zwei äquivalente Syntaxformen der expliziten Typumwandlung.

Der einzige Unterschied besteht darin, dass die T (x) -Form erfordert, dass T ein "einfacher Typspezifizierer" ist. Dies bedeutet grob, dass es sich um ein einzelnes Token handelt: Sie können kein vorzeichenloses int (x) oder int * (x) schreiben.