dynamic_pointer_cast Function
Dynamische Umwandlung in den shared_ptr.
template <class Ty, class Other>
shared_ptr<Ty> dynamic_pointer_cast(const shared_ptr<Other>& sp);
Parameter
Ty
Der Typ der zurückgegebenen freigegebenen Zeiger gesteuert.Other
Der Typ, der vom Argument angegebenen Zeiger gesteuert wurde freigegeben.sp
Der freigegebene Zeiger des Arguments.
Hinweise
Die Vorlagenfunktion gibt ein leeres shared_ptr Objekt zurück, wenn dynamic_cast<Ty*>(sp.get()) einen NULL-Zeiger zurück. Andernfalls wird ein Objekt shared_ptr Class<Ty> zurück, die die Ressource besitzt, die von spgehört.Der Ausdruck dynamic_cast<Ty*>(sp.get()) muss gültig sein.
Beispiel
// std_tr1__memory__dynamic_pointer_cast.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct base
{
virtual ~base()
{
}
int val;
};
struct derived
: public base
{
};
int main()
{
std::shared_ptr<base> sp0(new derived);
std::shared_ptr<derived> sp1 =
std::dynamic_pointer_cast<derived>(sp0);
sp0->val = 3;
std::cout << "sp1->val == " << sp1->val << std::endl;
return (0);
}
Anforderungen
Header: <memory>
Namespace: std