Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

面试基础题之一:构造函数体中只调用memset将对象的字节内容都置0,有什么安全隐患?

$
0
0

#include <iostream>
using namespace std;
class Base
{
public:
 Base(){ memset(this,0,sizeof(*this)); }
};

 

个人觉得

第一点、如果类中有const数据成员或const引用的话,只有在构造函数的成员初始化列表中初始化 。

第二点、如果类中有虚函数的话,memset会使得虚函数表指针的值置0,则无法索引到虚函数的地址,则无法调用虚函数了

第三点、如果类是个虚基类的话,memset会使得虚基类表指针的值置0

 

 

如果大家还有其他的想法,欢迎补充!!!

 

作者:a20102110080212 发表于2013-5-21 20:29:19 原文链接
阅读:37 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles