我有一个与 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
有人知道为什么吗?