[活动]7、8月新剧快评# TVChinese - 中文电视
f*4
1 楼
void *p = malloc(sizeof(CopyCtr));
CopyCtr *pCC = new (p) CopyCtr(10);
// ..................
pCC->~CopyCtr(); // call destructor ONLY ONLY with placement New
free(p);
这个是很标准的Placement new的用法,CopyCtr是一个test class
我的问题是,如果这个CopyCtr,没有额外申请任何heap资源的话(就是所有
datamember都是内置类型,这个class也不是自己counting reference 的class),那
么不call
pCC->~CopyCtr() 而直接free p。有啥危害没有?
这个不是面试题,就是复习的时候想到的;大家有啥建议没?
我只能想到这个 不规范,还有别的么?
CopyCtr *pCC = new (p) CopyCtr(10);
// ..................
pCC->~CopyCtr(); // call destructor ONLY ONLY with placement New
free(p);
这个是很标准的Placement new的用法,CopyCtr是一个test class
我的问题是,如果这个CopyCtr,没有额外申请任何heap资源的话(就是所有
datamember都是内置类型,这个class也不是自己counting reference 的class),那
么不call
pCC->~CopyCtr() 而直接free p。有啥危害没有?
这个不是面试题,就是复习的时候想到的;大家有啥建议没?
我只能想到这个 不规范,还有别的么?