Heim  >  Artikel  >  Backend-Entwicklung  >  Wie instanziiere ich eine Klassenvorlage mit Standardvorlagenargumenten in C?

Wie instanziiere ich eine Klassenvorlage mit Standardvorlagenargumenten in C?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 08:01:30369Durchsuche

How to Instantiate a Class Template with Default Template Arguments in C  ?

Angeben von Standardvorlagenargumenten beim Instanziieren von Klassenvorlagen mit Standardvorlagenargumenten

C 11 hat Standardvorlagenargumente eingeführt, um eine prägnante und bequeme Möglichkeit zu bieten Geben Sie Vorlagenargumente an, wenn Sie eine Klassenvorlage instanziieren. Allerdings kann die Angabe von Argumenten für eine Klassenvorlage mit Standardvorlagenargumenten verwirrend sein.

Man könnte davon ausgehen, dass die einfache Deklaration einer Instanz der Klassenvorlage, wie z. B. Foo me;, ausreichen würde. In diesem Fall erfordert der Compiler jedoch die explizite Angabe der Vorlagenargumente.

Der richtige Weg, eine Klassenvorlage mit Standardvorlagenargumenten zu instanziieren, besteht darin, die Liste der Vorlagenargumente leer zu lassen. Das heißt, anstelle von Foo me; sollte der Code Foo<> lauten. Mich;. Dies zeigt dem Compiler an, dass die Standardvorlagenargumente für die Klasseninstanziierung verwendet werden sollen.

Diese Syntax stimmt mit der Konvention zum Aufrufen einer Funktion mit Standardargumenten überein. Beispielsweise kann eine Funktion foo mit einem einzelnen Standardargument aufgerufen werden, ohne das Argument als foo() anzugeben. Die Argumentsyntax muss jedoch weiterhin vorhanden sein.

Hinweis: Ab C 17 ist es möglich, eine Instanz einer Klassenvorlage zu deklarieren, ohne Vorlagenargumente anzugeben, wie in Foo me; . Dieses Verhalten unterscheidet sich von früheren C-Versionen und sollte mit Vorsicht verwendet werden, da es möglicherweise nicht von allen Compilern unterstützt wird.

Das obige ist der detaillierte Inhalt vonWie instanziiere ich eine Klassenvorlage mit Standardvorlagenargumenten 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