[C/C++] Methode mit Parameter AbstrakteKlasse*

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von bloodyphoenix, 19. Mai 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 19. Mai 2011
    Methode mit Parameter AbstrakteKlasse*

    Ich habe eine Abstrakte Klasse (RollSystem) in C++ erstellt und habe diese auf eine andere Klasse (RollSystemSR) vererbt.

    Nun hab ich eine Methode
    Code:
    void TSRLogic::addRollSystem(RollSystem* rs);
    Das Problem ist nun, wenn ich ein Objekt mit

    Code:
    RollSystemSR* rs = new RollSystemSR();
    anlege und es mit

    Code:
    addRollSystem(rs);
    in die Methode stecke, funktioniert der Zugriff auf einen (in der Abstrakten Klasse definierten) Member der Klasse nicht, bzw. liefert ein falsches Ergebnis.
    Code:
    rs->triggers.size()
    Caste ich das Objekt (bzw. den Pointer) in der Methode auf den konkreten Typen, so geht der Zugriff problemlos, etwa so:
    Code:
    ((RollSystemSR*)rs)->triggers.size()
    Die Adressen von rs->triggers hab ich mir ausgeben lassen und sie unterscheiden sich um 4Byte.

    Das Ganze macht die Lösung mit der Abstrakten Klasse sinnlos, da ich dann für jede Konkrete Klasse ne eigene Methode bräuchte.

    Gibts dafür irgendeine andere Lösung oder ist das in C++ einfach so nicht möglich? Hab nicht wirklich C++ Erfahrung und in Java geht das Ganze ohne Probleme.

    Schonmal vielen Dank im Voraus

    Edit: Habs grad rausgefunden. Aus irgendeinem Grund dachte ich man müsse die Variable nochmal in der KonkretenKlasse deklarieren. Macht man das nicht, funktioniert der Zugriff problemlos
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.