delete []ptr; 由于其触发的vec_delete()是通过迭代走过每一个数组元素,而本例中被传递过去的是Point class object的大小而不是Point3d class object的大小,整个运行过程将会失败。 解决之道在于程序层面,而非语言层面: for(int ix = 0; ix < 10; ix++) 当然,最好还是避免以一个base class指针指向一个derived class objects所组成的数组。 |
delete []ptr; 由于其触发的vec_delete()是通过迭代走过每一个数组元素,而本例中被传递过去的是Point class object的大小而不是Point3d class object的大小,整个运行过程将会失败。 解决之道在于程序层面,而非语言层面: for(int ix = 0; ix < 10; ix++) 当然,最好还是避免以一个base class指针指向一个derived class objects所组成的数组。 |