为什么不是这种多态?

Qia*_*ian 3 c++ polymorphism

#include <cstdio>
#include <cstring>

class A
{
public:
    virtual void foo()
    {
        puts("A");
    }
};

class B : public A
{
public:
    void foo()
    {
        puts("B");
    }
};

int main()
{
    A a;
    B b;
    memcpy(&a, &b, sizeof (b));
    (&a)->foo();
}
Run Code Online (Sandbox Code Playgroud)

Oli*_*rth 9

memcpy在非POD类型上执行原始内存操作(例如)会调用未定义的行为.你不应该这样做!