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)