Map Value zurückgeben



  • Ich habe hier einen Compiler Fehler, den ich absolut nicht raffe. Folgender Code:

    std::map<std::string, Entity*>  mEntities;
    std::map<std::string, Camera*>  mCameras;
    
    // Dieser Code kompiliert:
    Camera* Foo::getCamera(const std::string& name) const {
       auto it = mCameras.find(name);
       return it != mCameras.end() ? it->second : NULL;
    }
    
    // Dieser nicht (falscher Rückgabewert)
    Entity* Foo::getEntity(const std::string& name) const {
       auto it = mEntities.find(name);
       return it != mEntities.end() ? it->second : NULL;
    }
    

    Wieso kompiliert getCamera(), aber getEntity() nicht? Die machen doch exakt das selbe? 😕



  • Wie lautet denn die genaue Fehlermeldung? Ideone sagt, daß beide Funktionen in Ordnung sind.



  • CStoll schrieb:

    Wie lautet denn die genaue Fehlermeldung? Ideone sagt, daß beide Funktionen in Ordnung sind.

    Danke für die Hilfe! Hab den Fehler gefunden: mEntities speicherte Zeiger auf eine Basisklasse von Entity:/


Anmelden zum Antworten