#include<iostream>
struct I1
{
virtual void nb1()=0;
virtual ~I1(){}
};
struct I2
{
virtual void nb2()=0;
virtual void nb22()=0;
virtual ~I2(){}
};
struct C12 : I1, I2
{
virtual void nb1(){std::cout << "nb\n";}
virtual void nb2(){std::cout << "nb2\n";}
virtual void nb22(){std::cout << "nb22\n";}
};
int main()
{
I2 * p2 = new C12;
I1 * p1 = reinterpret_cast<I1*>(p2);
return 1;
}
在这里使用 a 有什么禁忌reinterpret_cast
吗?我应该强制使用dynamic_cast
吗?
只有 I1 和 I2 是纯虚拟的才可以吗?