下面的代碼有什麼問題嗎?我特別感興趣的是使用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