was bedeutet & t für den Ausdruck new (& t) T (t) in c ++?

8

Welche Bedeutung hat & amp; t für den Ausdruck new (& amp; t) T (t) in c ++?

wie betitelt.

%Vor%     
jiafu 07.01.2014, 05:35
quelle

3 Antworten

4

Dies wird als "neue Platzierung" -Syntax bezeichnet. Der Wert T wird in der Adresse erstellt, die von &t angegeben wird.

Dieses Beispiel ist ein wenig aus, da es ein neues T an der genauen Position eines vorhandenen T unter Verwendung des Kopierkonstruktors erzeugt. Ich denke, es ist einfacher, dieses Konzept mit einer expliziten Adresse zu erklären. Hier ist eine Variation dieses Codes.

%Vor%     
JaredPar 07.01.2014 05:38
quelle
2

Dies ist die Placement Syntax ; Diese Anweisung:

%Vor%

Konstruiert ein Objekt an der Adresse von t ( &t ), reserviert jedoch keinen Speicher.

    
rullof 07.01.2014 05:43
quelle
2

Dies ist ein Beispiel für Platzierung neu , wobei der Container die Startadresse des Objekt t erstellt mit dem Typ T

Der Beispielcode erstellt ein Objekt vom Typ T unter Verwendung des Kopierkonstruktors, der einen Parameter vom Typ T akzeptiert und das Objekt in den Speicherort des Objekts t stellt.

Um die Idee zu konzipieren, betrachten Sie den Typ als Ganzzahl, sodass Ihr Vorlagencode wie

aussehen würde %Vor%

Offensichtlich ist die Platzierung neu redundant und verwirrend. Der einzige Grund dafür, einen solchen ungeraden Code zu schreiben, ist, die Initialisierung eines Objekts mit Copy Constructor zu erzwingen, das neben dem Kopieren des Inhalts des Objekts, das für den Benutzer interessant sein könnte, zusätzlichen Code haben könnte. / p>     

Abhijit 07.01.2014 05:38
quelle

Tags und Links