• C++对象数组操作误区


    由于语义上的需要导致语法的上缺陷,所以导致对象数组在C++中存在陷阱。


    C++语境:一个基类指针或引用是可以指向派生类对象的,以此可来表现C++对运行时多态的需求;

    创建一个对象数组将返回首元素的首地址,因此该地址是可以被该对象所有类属指针所接纳,无编译错误。而问题就在这里,这是个陷阱!

    因为数组是所有语言都支持的一种顺序存储形式。从C开始支持的数组,数组操作其实就是相对寻址方式,使用指针是间接寻址方式,因为都是地址操作,因此可以使用指针来描述一个动态数组,即堆申请的数组。但数组元素的寻址,就需要偏移量计算,此依赖类型的size来计算。因此操作数组时必须明确对象的真实类型才能正常工作。


    所以将C++多态和数组操作结合到一起,确是操作禁区。

  • 相关阅读:
    校验相关问题
    类型转换和操作符重载 (c#)
    泛型委托Func<string,string>()
    第三次作业 刘惠惠
    刘惠惠1.12
    第二次作业刘惠惠2.6,2.15
    刘惠惠1.8
    第四次作业 刘惠惠
    刘惠惠1.2
    设计模式中的单件模式
  • 原文地址:https://www.cnblogs.com/qianwen36/p/3657430.html
Copyright © 2020-2023  润新知