最关键的问题是派生类和基类的大小可能不一致。这样两种类型的数组的元素间距(也就是元素大小)就不同。
另外,C++标准中规定:通过基类指针删除一个由派生对象构成的数组,其结果未定义。
结论:
由于多态和指针算术不能混合运用,而数组对象几乎总是涉及指针的算术运算,
所以数组和多态不应混合使用。
最关键的问题是派生类和基类的大小可能不一致。这样两种类型的数组的元素间距(也就是元素大小)就不同。
另外,C++标准中规定:通过基类指针删除一个由派生对象构成的数组,其结果未定义。
结论:
由于多态和指针算术不能混合运用,而数组对象几乎总是涉及指针的算术运算,
所以数组和多态不应混合使用。