Systemdynamik und Simulationsanalyse -> 3 unterschiedliche Klassen in 1 Array?
-
Anonymous Guy schrieb:
Aber warum steht da hinter ein "*"? Es handelt sich hierbei doch um einen Verweis-Operator, aber warum?
der stern hat mehrere bedeutungen. abgesehen von der plutimikation ist er manchmal ein operator, der sagt, wohin ein zeiger verweist und manchmal macht er nen typen zum zeigertyp. in deklarationen macht er nen zeiger. das ist hier ein wenig der fall.
und das ist auch der trick am array. währen die einzelnen typen Scahf, Wolf und so ja unterschiedlich groß sein können, und deshalb nicht in ein gemeinsames Array passen, kann man zeiger auf den kram prima in nem gemeinsamen array speichern. zeiger sind ja alle gleich groß. und praktischerweise kann man in c++ sogar ohne tricks nen zeiger auf die basisklasse nehmen und die adresse eines objektes einer abjeleiteten klasse reinstecken. und das ist hier gemacht worden. ist übrigens die lehrbuchlösung für dein problem.
-
volkard schrieb:
kann man zeiger auf den kram prima in nem gemeinsamen array speichern.
D.h., ich speichere lediglich die Pointer im Vektor? Wenn sich aber die Instanz nicht im Vektor befindet, müsste ich sie doch auch ohne Vektor ansprechen können, oder? Schließlich müssen die Instanzen ja irgendwo rumkullern und im Vektor sind sie ja anscheinend nicht.
Um auf das Beispiel zurück zu kommen: Kann ich mir mit z.B. MeinVektor[i].GetName() den Namen der Instanz die sich im Vektor bei i befindet, ausgeben lassen (z.B. Hase, Fuchs, Schaf etc.)?
-
Anonymous Guy schrieb:
D.h., ich speichere lediglich die Pointer im Vektor? Wenn sich aber die Instanz nicht im Vektor befindet, müsste ich sie doch auch ohne Vektor ansprechen können, oder? Schließlich müssen die Instanzen ja irgendwo rumkullern und im Vektor sind sie ja anscheinend nicht.
Die Objekte liegen im RAM - im Vector hast du Zeiger auf diese Objekte.
Um auf das Beispiel zurück zu kommen: Kann ich mir mit z.B. MeinVektor[i].GetName() den Namen der Instanz die sich im Vektor bei i befindet, ausgeben lassen (z.B. Hase, Fuchs, Schaf etc.)?
Nein. Du musst Zeiger verwenden, da es sonst mit Polymorphie nicht gut klappen wird (Stichwort: slicing) - siehe dein Lieblings C++ Buch.
Du musst also Zeiger speichern, was dazu führt, dass du
Vector[i]->getName();
schreiben musst.
-
Shade Of Mine schrieb:
Die Objekte liegen im RAM - im Vector hast du Zeiger auf diese Objekte.
Die Frage hätte ich mir auch selber beantworten können.
Shade Of Mine schrieb:
Nein. Du musst Zeiger verwenden, da es sonst mit Polymorphie nicht gut klappen wird (Stichwort: slicing) - siehe dein Lieblings C++ Buch.
Du musst also Zeiger speichern, was dazu führt, dass du
Vector[i]->getName();
schreiben musst.Also hattest du mich von Anfang an richtig verstanden und es ist damit möglich, Instanzen von verschiedenen Klassen in einem Vector zu speichern und auf diese zuzugreifen?
Wenn das der Fall ist, bedanke ich mich erst einmal bei allen.
Denn Rest kriege ich mit etwas Eigeninitiative schon hin.Nettes Forum habt ihr hier.
-
Anonymous Guy schrieb:
Bei diesem Räuber-Beute-Modell gibt es 3 Typen: Gras, Hase, Fuchs.
Verzeiht die Werbung (*Lüge*), aber bei genau diesem Beispiel muß ich natürlich grinsen und ganz frech auf http://www.c-plusplus.net/titelanzeige.php?ISBN=3826629841 verweisen, wo ich in einem eigenen Kapitel genau so ein Räuber-Beute-Modell programmiere und dabei ganz ähnliche Klassen vorkommen.
-
Marc++us schrieb:
Anonymous Guy schrieb:
Bei diesem Räuber-Beute-Modell gibt es 3 Typen: Gras, Hase, Fuchs.
Verzeiht die Werbung (*Lüge*), aber bei genau diesem Beispiel muß ich natürlich grinsen und ganz frech auf http://www.c-plusplus.net/titelanzeige.php?ISBN=3826629841 verweisen, wo ich in einem eigenen Kapitel genau so ein Räuber-Beute-Modell programmiere und dabei ganz ähnliche Klassen vorkommen.
Warum hast du das nicht gleich gesagt?
Bist du der Verkäufer bei Amazon.de, der ein gebrauchtes Exemplar für 14,95 EUR anbietet? Wenn ja, wie läuft das ganze bei Amazon denn ab? Ich habe da bis jetzt noch nie von anderen Anbietern bestellt, sondern nur bei Amazon direkt. Wie hoch wären dann da die Versandkosten?
-
Nö, bin ich nicht.
-
er ist der autor nicht der verkeufer (für den fall das du ihn missverstanden hast)
ich habe schon mal ein gebrauchtes buch gekauft und so weit ich mich erinnern kann wird das porto extra gezahlt, amazon ist nur der vermitler der rest leuft zwischen dir und verkeufer
-
Gerard schrieb:
er ist der autor nicht der verkeufer (für den fall das du ihn missverstanden hast)
ich habe schon mal ein gebrauchtes buch gekauft und so weit ich mich erinnern kann wird das porto extra gezahlt, amazon ist nur der vermitler der rest leuft zwischen dir und verkeufer
Ja, ich weiß. Habe mich verguckt gehabt. Jedenfalls werde ich es mir gleich mal bestellen.
Btw: Ist es eigentlich schwer, so ein Buch herausbringen zu lassen? Hattest du da schon ein Script fertig? Oder einen Auftrag seitens des Verlages bekommen? Sagt dir der Verlag, wie viele deiner Bücher schon verkauft wurden?
Nicht das ihr jetzt denkt, dass ich ein Buch schreiben will, ich frage lediglich aus Interesse.
-
ja nein ja ja