Sagen wir, wir haben die Klasse A:
%Vor% Wie kann ich ein std::vector
vom Typ A
erstellen und dem Konstruktor von A
ein Argument geben? Wie würde ich 3
zum vector
hinzufügen?
%Vor%Wie kann ich ein
std::vector
vom TypA
erstellen und dem Konstruktor vonA
ein Argument geben?
%Vor%Wie würde ich dem Vektor 3 hinzufügen?
Das Fehlen eines Standardkonstruktors bedeutet nur, dass Sie keine Operationen wie
ausführen können %Vor%Beide fügen standardmäßig konstruierte Elemente in den Vektor ein.
Vorlagen werden nicht auf einmal instanziiert: sie instanziieren nur, was benötigt wird. A
erfüllt alle Bedingungen für Folgendes (um einen leeren Vektor zu konstruieren), um gültig zu sein:
Da A
jedoch keinen Standardkonstruktor hat, würde Folgendes (Erstellen eines Vektors mit standardmäßig initialisiertem Inhalt) fehlschlagen:
Und das ist eine gute Sache. Gültige Methoden werden jedoch instanziiert:
%Vor%