1Danke
ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
357
357
EMPFEHLEN
-
Hallo,
ich habe irgendwie Probleme, an Elemente einer Klasse zu kommen.
ich habe 3 Verschiedene Klassen, diese stammen alle von einer Basisklasse ab. Folgender Aufbau:
Code cpp:1 2 3 4 5 6 7 8 9 10 11
typedef struct OutputElement_ { std::string OutputType; std::string OutputID; } OutputElement; typedef struct KMLContour_type_ : public OutputElement { BoundingBox_type BoundingBox; SpectrumResource_type SpectrumResource; std::vector<int> ContourLevel; } KMLContour_type; [...]
Nun besitze ich einen Vektor indem ich die OutputElemente speicher.
Code cpp:1
std::vector<OutputElement> OutputDefinition;
Nun kann ich anhand der Variablen OutputType die verschiedene structs identifizieren und sobald das getan den Elementen ihre spezifischen Werte zuweisen. Leider funktionieren meine Versuche wie
nicht. Hier gibt es den Fehler "Field 'Boundingbox' could not be resolved"Code cpp:1
OutputDefinition.at(num_outputelements).BoundingBox = box;
Daher nun die Frage, wie kann ich es schaffen, dass es so funktioniert? Sind hier vielleicht casts notwendig? Wenn ja wie sieht das aus? Oder ist der Ansatz generell nicht gut?
Grüße JennestaGeändert von Jennesta (29.11.11 um 00:18 Uhr)
Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.
-
29.11.11 07:41 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.In C++ kannst du dir die typedef's sparen, sie sind überflüssig.
Außerdem ist es nicht unbedingt guter OOP Stil Attribute öffentlich zu machen.
Du kannst in diesem Vektor ausschließlich OutputElement Instanzen speichern. D.h. in diesem Vektor sind keine KMLContour_type Objekte drin, wenn du welche einfügst, werden diese automatisch zu OutputElement konvertiert.
Du mußt Zeiger verwenden und dann mit dynamic_cast arbeiten:
GrußCode cpp:1 2 3 4 5 6 7 8 9
std::vector<OutputElement*> OutputDefinition; ... KMLContour_type* p = dynamic_cast<KMLContour_type*>(OutputDefinition.at(num_outputelements)); if (p != 0) { p->BoundingBox = box; }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
JPA Table cannot be resolved
Von anjepieft im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 26.11.11, 00:03 -
ControllerListener cannot be resolved as a type
Von Nord-Süd-Richtung im Forum JavaAntworten: 2Letzter Beitrag: 07.12.09, 14:01 -
JSEclipe - document cannot be resolved
Von DataFox im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 16.11.08, 20:43 -
The import javax.persistence cannot be resolved
Von Alexander1307 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 16.11.08, 01:32 -
Fehler: cannot be resolved
Von ShastyMcNastee im Forum JavaAntworten: 3Letzter Beitrag: 08.12.07, 18:44





Zitieren

Login






