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
Barbara StreisandOriginal
2024-11-16 03:59:02497Durchsuche

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;
    ...
};

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!

Stellungnahme:
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