C++のstatic_castに関連する質問があります。
私は持っています :
- クラスBとその派生クラスD
- クラスBDataとその派生クラスDData
コードは次のとおりです。
class B
{
public:
B(BData * pb)
{
}
};
class D : public B
{
public:
D(DData * pd) : B( static_cast<BData*>(pd))
{
}
};
コンパイルでは常にエラーが発生します。
error C2440: 'static_cast' : cannot convert from 'DData *' to 'BData *',
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
誰かが理由を知っていますか?