假设
以下代码是否可行?
DerivedClass
是从BaseClass
派生的以下代码是否可行?
boost::shared_ptr<BaseClass> a(new BaseClass());
boost::shared_ptr<DerivedClass> b(new DerivedClass());
a=b;
根据这个问题,我理解现在a
指向派生类,而b
指向基类(对吗?)
那么,如果我通过a
调用函数,它会调用派生类的实现吗?
static_pointer_cast
也可以工作,因此成为在DerivedClass
中调用非虚函数的首选方式,你觉得呢?boost::static_pointer_cast<DerivedClass>(a)->SomeFunctionOnlyInDerivedClass();
- j00hi