私は以下のようなコードスニペットを持っています:
class ClassA
{
public:
virtual ~ ClassA() {};
virtual void FunctionA() {cout << "ClassA" << endl;}
};
class ClassB
{
public:
virtual void FunctionB() {};
};
class ClassC : public ClassA, public ClassB
{
public:
void FunctionA(){cout << "why" << endl;}
void FunctionB(){cout << "class C funb" << endl;}
};
ClassC aObject;
ClassA* pA = &aObject;
ClassB* pB = &aObject;
ClassC* pC = &aObject;
int main()
{
void* pvoid = static_cast<void *> (pB);
ClassA* pA2 = static_cast<ClassA*>(static_cast<ClassC*>(pB));
return 0;
}
型キャストはpvoid
正しいpA2
ですか?それとも両方とも間違っていますか?(私はそれをコンパイルしようとしましたが、エラーはありません)