下面的代码有什么问题吗?我特别感兴趣的是使用reinterpret_cast
。reinterpret_cast的使用
class Base1
{
public:
virtual void foo(){}
};
class Base2
{
public:
virtual void bar(){}
};
class Derived : public Base1, public Base2
{
};
int main()
{
Base1* instance1 = new Derived();
instance1->foo();
Base2* instance2 = reinterpret_cast<Base2*>(instance1);
instance2->bar();
return 0;
}
为什么'Base2'继承非'公共'故意? – emlai
@zenith号是否有所作为? – ksl
是的。否则,你不能在'Base2'和'Derived'之间进行投射:http://stackoverflow.com/q/860339/3425536 – emlai