c ++ Darsteller vectorInherited * zu vectorabstract *

7
%Vor%

Wie implementiere ich die Funktion getStuff() ?

    
Mat 08.10.2010, 14:24
quelle

3 Antworten

25
%Vor%     
Grozz 08.10.2010, 14:27
quelle
5

std::vector<Inherited*> und std::vector<abstract*> sind verschieden und ziemlich unzusammenhängend. Du kannst nicht von einem zum anderen werfen. Aber Sie können std::copy oder Iterator-Bereichskonstruktor verwenden, wie @Grozz sagt.

Bearbeiten:

Beantworten Sie Ihre Frage in den Kommentaren: Sie unterscheiden sich in der gleichen Weise, in der zwei Klassen mit Mitgliedern kompatibler Typen unterschiedlich sind. Beispiel:

%Vor%

Damit die letzte Anweisung funktioniert, müssen Sie einen expliziten Zuweisungsoperator definieren wie:

%Vor%

Ich hoffe, dies macht es klar.

    
Nikolai Fetissov 08.10.2010 14:29
quelle
1

Ich benutze das. Es ist nicht sehr nett, aber schnell denke ich:)

%Vor%

Sie können mit dieser Methode auch nur Referenzen auf den Vektor zurückgeben

%Vor%     
Loqenc 12.11.2015 13:23
quelle

Tags und Links