当前位置: 网站首页 > 开发语言 > C/C++

《深度探索C++对象模型》读书笔记(6)

时间:1970-1-1 08:33:31来源: C/C++作者:admin 点击:0次 字体 [ С]

delete []ptr;

   由于其触发的vec_delete()是通过迭代走过每一个数组元素,而本例中被传递过去的是Point class object的大小而不是Point3d class object的大小,整个运行过程将会失败。

   解决之道在于程序层面,而非语言层面:

 for(int ix = 0; ix < 10; ix++)
{
Point3d *p = &((Point3d*)ptr)[ix];
delete p;
}

   当然,最好还是避免以一个base class指针指向一个derived class objects所组成的数组。


发表评论
验证码:
最新评论
相关文章
最热文章