cast



  • Hallo, bin absoluter Neuling und möchte casten:

    void CDetFlankenObjekt::transmit(boost::shared_ptr< CProzessDatum> prozessDatum)
    {
    boost::shared_ptr < CDetektorFlanke > aktDetFlanke = reinterpret_cast< boost::shared_ptr < CDetektorFlanke > > (prozessDatum);
    }

    und hier die Meldung:

    error C2440: 'reinterpret_cast': 'boost::shared_ptr<T>' kann nicht in 'boost::shared_ptr<T>' konvertiert werden

    Kann mir jemand helfen 😞
    Danke 🙂



  • Neuling und boost ??? 😉 😃

    Frage 1: Ist DetFlankenObjekt von ProzessDatum abgeleitet?

    Wenn ja: kein reinterpret_cast sondern dynamic_cast

    Bei boost::shared_ptr<xxx> kannst Du aber jetzt nicht einfach in boost::shared_ptr<yyy> cast, weil der Typ ja nicht xxx und yyy ist, sondern eben boost::shared_ptr<xxx> usw.

    Deswegen:

    boost::shared_ptr < CDetektorFlanke > aktDetFlanke = dynamic_pointer_cast<CDetektorFlanke>(prozessDatum)
    

Anmelden zum Antworten