智能指针shared_ptr 的向上向下变换

智能指针shared_ptr 的向上向下转换
class a
{
public:
virtual ~a(){};
};
typedef shared_ptr<a> aptr;

class b:
public a
{
};
typedef shared_ptr<b> bptr;

b* bb = new b;

aptr aq(bb);
bptr bq;
bq = dynamic_pointer_cast<b>(aq);



向这样虽然可以把aq赋给bq,但是带一个dynamic_pointer_cast<T>好麻烦,有没有方法,能让它隐式转换,不用再带dynamic_pointer_cast这东西?
------解决方案--------------------
不能。
你不用shared_ptr的时候也是这样的,必须有dynamic_cast。