你能详细说明为什么这个代码在提到的地方崩溃了吗?我有点难过.我想这与它有关,sizeof(int)但我不太确定.谁能解释一下?
class Base
{
public:
virtual void SomeFunction()
{
printf("test base\n");
}
int m_j;
};
class Derived : public Base {
public:
void SomeFunction()
{
printf("test derive\n");
}
private:
int m_i;
};
void MyWonderfulCode(Base baseArray[])
{
baseArray[0].SomeFunction(); //Works fine
baseArray[1].SomeFunction(); //Crashes because of invalid vfptr
baseArray[2].SomeFunction(); //Crashes because of invalid vfptr
baseArray[3].SomeFunction(); //Works fine
baseArray[4].SomeFunction(); //Crashes because of invalid vfptr
baseArray[5].SomeFunction(); //Crashes because of invalid vfptr
baseArray[6].SomeFunction(); //Works fine
baseArray[7].SomeFunction(); //Crashes because of invalid vfptr
baseArray[8].SomeFunction(); //Crashes because …Run Code Online (Sandbox Code Playgroud)