Heim >Backend-Entwicklung >C++ >Welche Memberfunktionen generiert der C-Compiler automatisch?

Welche Memberfunktionen generiert der C-Compiler automatisch?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 09:04:09977Durchsuche

What Member Functions Does the C   Compiler Automatically Generate?

Vom Compiler in C automatisch generierte Memberfunktionen

Frage:

Welche Memberfunktionen werden in C ausgeführt? Compiler automatisch für eine Klasse erstellen? Tritt dies konsistent für alle Klassen auf?

Antwort:

Der Compiler kann je nach Bedarf die folgenden Memberfunktionen für eine Klasse generieren:

C 98/03:

  • Standard Konstruktor:Erstellt, wenn kein benutzerdefinierter Konstruktor vorhanden ist.
  • Konstruktor kopieren:Erstellt, wenn kein benutzerdefinierter Kopierkonstruktor vorhanden ist.
  • Zuweisung kopieren Operator: Wird erstellt, wenn kein benutzerdefinierter Kopierzuweisungsoperator vorhanden ist existiert.
  • Destruktor:Erstellt, wenn kein benutzerdefinierter Destruktor vorhanden ist.

Diese Funktionen werden bei Bedarf generiert und nur, wenn sie nicht explizit vom Programmierer deklariert werden.

C 11:

Zusätzlich zum C 98/03 Funktionen, C 11 eingeführt:

  • Konstruktor verschieben: Wird generiert, wenn keine benutzerdefinierten Konstruktoren, Zuweisungsoperatoren oder Destruktoren vorhanden sind. Die Funktion ist nicht zum Löschen markiert , und alle Mitglieder und Basen sind beweglich.
  • Zuweisungsoperator verschieben: Ähnlich generiert unter den gleichen Bedingungen wie der Verschiebungskonstruktor.

Standardkonstruktor:

Der Standardkonstruktor ist ein implizit generierter Konstruktor, der keine Argumente akzeptiert. Es initialisiert alle Mitgliedsvariablen auf Standardwerte oder Nullen. Der Standardkonstruktor ist für die Erstellung von Objekten einer Klasse ohne manuelle Angabe von Argumenten unerlässlich.

Das obige ist der detaillierte Inhalt vonWelche Memberfunktionen generiert der C-Compiler automatisch?. 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