我想编写一个方法,其中Base
对象指针将作为参数传递,并在方法内部将其转换为派生对象指针。
void func( const Base* const obj){
Derived* der = dynamic_cast<Derived*>(obj);
}
但它显示错误,因为动态转换不能丢弃 const specifier。但我不明白为什么const
必须在这里删除说明符,我所做的只是创建一个派生指针,它应该指向基指针之后的某个偏移量。我也试过const Derived* const der = dynamic_cast<Derived*>(obj);
,但没有结果。
将参数作为 传递是很重要的const
。我怎样才能做到这一点?我必须以丑陋的方式先申请const_cast
吗dynamic_cast
?有没有更好的方法?