Heim >Backend-Entwicklung >C++ >Warum sind injizierte Klassennamen in C notwendig?

Warum sind injizierte Klassennamen in C notwendig?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 14:22:10461Durchsuche

Why are Injected Class Names Necessary in C  ?

Injizierte Klassennamen in C: Enthüllung ihres Zwecks

In C bezieht sich ein injizierter Klassenname auf das Phänomen, bei dem der Name einer Klasse injiziert wird in seinen eigenen Wirkungsbereich. Diese Funktion wirft Fragen zu ihrer Notwendigkeit und ihrem Ursprung auf.

Zweck der eingefügten Klassennamen

Der eingefügte Klassenname stellt sicher, dass sich der Klassenname im Hauptteil der Klasse immer darauf bezieht die aktuelle Klasse, auch wenn eine andere Klasse mit demselben Namen im umschließenden Bereich deklariert ist. Betrachten Sie das folgende Beispiel:

void X() { }
class X {
public:
  static X create() { return X(); }
};

Im obigen Code besteht der Zweck des injizierten Klassennamens darin, zwischen der Erstellung eines temporären X-Objekts und dem Aufruf der X-Funktion zu unterscheiden. Im Namespace-Bereich würde die Funktion „create()“ die Funktion

Eingefügte Klassennamen sind auch in Klassenvorlagen nützlich. Sie ermöglichen die Verwendung des Klassennamens ohne Angabe einer Vorlagenargumentliste, wodurch es einfacher ist, auf die aktuelle Instanziierung zu verweisen. Anstatt zum Beispiel Foo zu verwenden, können Sie einfach Foo verwenden.

Einführung und Terminologie

Das Konzept der injizierten Klassennamen existierte in C 98, aber die Terminologie wurde in C 03 eingeführt. C 98 bezeichnete es als „Einfügen eines Klassennamens in den Geltungsbereich der Klasse“. sich selbst.“ C 03 prägte den Begriff „injizierter Klassenname“.

Fazit

Injizierte Klassennamen sind eine wertvolle Funktion in C, die die korrekte Namenssuche innerhalb von Klassen gewährleistet und vereinfacht Syntax für Klassenvorlagen. Das Verständnis ihres Zwecks und ihrer historischen Entwicklung verbessert die Beherrschung der C-Programmierung.

Das obige ist der detaillierte Inhalt vonWarum sind injizierte Klassennamen in C notwendig?. 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