我有抽象类
A
和派生类 B
,它们公开继承自 A
。
我将指向
const
的 const A
指针传递给函数。在此函数中,我将 static_cast
指向指向 const
的 const B
指针并得到错误 type qualifiers ignored on cast result type
(因为我们使用 -Werror=ignored-qualifiers
)。
这里出了什么问题?在我看来,我拥有所需的所有
const
限定符。
void foo(const A* const pA)
{
const B* const pB = static_cast<const B* const>(pA); // Error
// ... use pB ...
}
编辑:使用
dynamic_cast
不能解决问题。为什么呢?