6
Aumenta i puntatori intelligenti can be used with polymorphism, ma come si lancia la sottoclasse al puntatore?Come utilizzare boost :: smart_ptr nel polimorfismo?
using namespace boost;
// ...
shared_ptr<SuperClass> a_ptr(new SubClass);
// ...
shared_ptr<SubClass> b_ptr = (shared_ptr<SubClass>)a_ptr; // Doesn't compile
L'ultima riga non compila e dà error C2440: 'type cast' : cannot convert from 'boost::shared_ptr
<T>
'a 'boost :: shared_ptr <T>
'
Penso che dovrebbe essere 'dynamic_p ointer_cast' in questo caso, giusto? – Philipp
Se è sconosciuto in fase di compilazione se il tipo è quello specificato in <>. Else boost :: static_pointer_cast dovrebbe essere usato. –