比如
class A{char c1[5];}
class B:public class A{char c2[10]};
sizeof(A) = 5,sizeof(B) = 10,
A* p = new B[10]
那么会分配10 * sizeof(10) = 100的内存
假设p = x,那么p[0] = x,p[1] = x + sizeof(A) = x + 5,而不是想象的x + sizeof(B) = x + 10!
不要将多态用于数组!
最新推荐文章于 2022-04-28 16:11:08 发布