Нельзя использовать динамическое приведение к объекту const
Я хочу написать метод, в котором указатель объекта Base
будет передан в качестве параметра, а внутри метода он будет приведен к производному указателю объекта.
void func( const Base* const obj){
Derived* der = dynamic_cast<Derived*>(obj);
}
Но это показывает ошибку, потому чтодинамическое приведение не может отбросить спецификатор const . Но я не понимаю, почему спецификатор const
должен быть удален здесь, все, что я делаю, это создаю производный указатель, который должен указывать на некоторую величину смещения после базового указателя. Я тоже пытался const Derived* const der = dynamic_cast<Derived*>(obj);
, но нет результат.
Важно передать параметр как const
. Как я могу это сделать? Должен ли я делать это уродливым способом, сначала применяя const_cast
, а затем dynamic_cast
? есть ли лучший способ?