参考:https://blog.csdn.net/primeprime/article/details/80776625
附注:
对存在虚函数的类不能使用memset()初始化对象的值,例如:
class parent
{
public:
virtual void output();
};
void parent::output()
{
printf("parent!");
}
class son : public parent
{
public:
virtual void output();
};
void son::output()
{
printf("son!");
}
int main()
{
son s;
memset(&s , 0 , sizeof(s));
parent& p = s;
p.output();
return 0;
}
使用memset()会将虚表指针初始化为NULL,当父类指针p调用p.out()函数时虚表指针指向NULL,会出现段错误。