Heim > Backend-Entwicklung > C++ > Wie verhindert „= delete' die Verwendung von Funktionen oder Konstruktoren in C?

Wie verhindert „= delete' die Verwendung von Funktionen oder Konstruktoren in C?

Barbara Streisand
Freigeben: 2024-11-16 03:59:02
Original
478 Leute haben es durchsucht

How Does

Löschen von Funktionen in C mit = delete

C führt die „= delete“-Syntax ein, die es Entwicklern ermöglicht, bestimmte Funktionen explizit zu verbieten oder Konstruktoren nicht verwendet werden. Dies wird erreicht, indem „= delete“ an die Funktions- oder Konstruktordeklaration innerhalb einer Klasse angehängt wird.

Betrachten Sie das folgende Beispiel:

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};
Nach dem Login kopieren

Bedeutung von = delete

Im Kontext von Funktions- oder Konstruktordeklarationen dient „= delete“ dem Folgenden Zweck:

  • Es verhindert, dass der Compiler einen Kopierkonstruktor oder Kopierzuweisungsoperator für diese bestimmte Funktion oder diesen bestimmten Konstruktor generiert.
  • Es kann verwendet werden, um die Verwendung bestimmter Konstruktoren einzuschränken, um eine unbeabsichtigte Verwendung zu verhindern Kopier- oder Zuweisungsvorgänge.

Zusätzlich Modifikatoren

Außer „= delete“ gibt es in C keine anderen Modifikatoren, die den gleichen Zweck erfüllen, nämlich die Verwendung von Funktionen oder Konstruktoren explizit zu verhindern. Es ist jedoch erwähnenswert, dass „= 0“ (die Standardkonstruktordefinition in C) und „= default“ (eingeführt in C 11) verwendet werden können, um Standardimplementierungen für Konstruktoren und Memberfunktionen bereitzustellen, wenn sie nicht explizit in der Klasse definiert sind.

Das obige ist der detaillierte Inhalt vonWie verhindert „= delete' die Verwendung von Funktionen oder Konstruktoren in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage