Vektor der Klasse ohne Standardkonstruktor

8

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?

    
Niclas Jonsson 28.04.2015, 13:05
quelle

3 Antworten

18
  

Wie kann ich ein std::vector vom Typ A erstellen und dem Konstruktor von A ein Argument geben?

%Vor%
  

Wie würde ich dem Vektor 3 hinzufügen?

%Vor%

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.

    
Mike Seymour 28.04.2015, 13:26
quelle
5

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:

%Vor%

Da A jedoch keinen Standardkonstruktor hat, würde Folgendes (Erstellen eines Vektors mit standardmäßig initialisiertem Inhalt) fehlschlagen:

%Vor%

Und das ist eine gute Sache. Gültige Methoden werden jedoch instanziiert:

%Vor%     
Quentin 28.04.2015 13:17
quelle
1

Der Trick besteht darin, wie Sie Elemente in den Vektor einfügen und welche Elementfunktionen des Vektors Sie verwenden.

%Vor%     
pmr 28.04.2015 13:11
quelle

Tags und Links