Was ist "= löschen"?

7

Was bedeuten diese beiden seltsamen Codezeilen?

%Vor%     
Liu 13.09.2010, 09:24
quelle

2 Antworten

11

Das =delete ist ein neues Feature von C ++ 0x. Dies bedeutet, dass der Compiler sofort mit der Kompilierung aufhören und sich beschweren sollte, dass diese Funktion gelöscht wird, sobald der Benutzer eine solche Funktion verwendet (Siehe auch: vordefinierte und gelöschte Funktionen - Kontrolle der Standardwerte der C ++ 0x FAQ von Bjarne Stroustrup).

Der thread_guard(thread_guard const&) ist ein Kopierkonstruktor und thread_guard& operator=(thread_guard const&) ist ein Zuweisungskonstruktor. Diese beiden Zeilen zusammen verhindern daher das Kopieren der thread_guard Instanzen.

    
kennytm 13.09.2010, 09:27
quelle
10

Es ist die neue C ++ 0x-Syntax zum Deaktivieren der bestimmten Funktionen der Klasse. Ein Beispiel finden Sie in wikipedia . Hier sagen Sie, dass die Klasse thread_guard weder kopierbar noch zuweisbar ist.

    
Naveen 13.09.2010 09:26
quelle

Tags und Links