Zugriff auf das selbe Objekt aus 2 Klassen



  • Guten Morgen!

    Ich habe folgendes Design:

    struct Road {
    ...
    };
    
    class RoadContainer {
    private:
       map<int, Road> mRoads;
    
    public:
       void addRoad(const Road& road) {
           mRoads[road.id] = road;
       }
    
       Road* RoadContainer::getRoad(int roadID) {
           map<int, Road>::iterator it = mRoads.find(roadID);
           return it != mRoads.end() ? &(it->second) : NULL;
    };
    

    Der RoadContainer speichert also die Roads by value ab.
    Ein Problem habe ich nun, wenn ich eine Road anlege, diese in den RoadContainer hinzufüge und zusätzlich ein anderes Objekt auch noch Zugriff auf diese Road benötigt.
    Beispiel:

    Road road;
    road.id = ...
    
    mRoadContainer.addRoad( road ); // Jetzt ist in mRoadContainer ja eine KOPIE von road
    
    Terrain terrain;
    terrain.addRoad( ??? ); Terrain soll auf die road zeigen, die in mRoadContainer ist
    

    Wie mache ich das, dass die road in terrain die selbe road wie die in mRoadContainer ist?
    Danke!



  • Du speicherst die Id in Terrain und fragst damit den Container.


Log in to reply