请问这样定义有什么错误?
struct B
{
int m_a;
B(){ memset(this , 0 , sizeof(B)) ; }virtual ~B(){};
};
[解决办法]
虚表被清空,你说会不会有问题呢
struct sut { virtual void fun() {} sut() {memset(this, 0, sizeof(*this)); }};int main(){ sut* p = new sut; p->fun(); return 0;}
[解决办法]
你可以这样认为,类调用它的虚函数是通过一个函数指针调用的,你直接这样清0,就会将这个指针也置为0了,调用时自然就出问题了