您的位置:首页 > 编程语言 > C语言/C++

C++中继承自array不要使用多态

2013-07-23 09:24 246 查看
假设如下一种情况:

基类---ArrayBase b;

继承ArrayBase的子类----ArraySub a;

使用上述类的多态函数---fun(const ArrayBase& a){}(注意a是子类,存在多态)

假如在fun函数中有操作a[i]需要取得a[i]的地址,数组取地址的方式是sizeof(ArrayBase)*i;请看好sizeof中的类型,使用的是基类,因此计算a[i]时会按照ArrayBase的大小取得的,但ArrayBase和ArraySub大小有极大可能不同,如此一来,a[i]的地址是什么鬼才知道!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: