博客
关于我
C++学习(35)
阅读量:719 次
发布时间:2019-03-21

本文共 874 字,大约阅读时间需要 2 分钟。

  • 运算符重载的选择 criteria只能使用成员函数重载的运算符包括=(), [],->和delete(). 这是因为这些运算符的实现往往需要与对象的状态密切相关,或者需要修改对象的内部状态。在这种情况下,成员函数比友元函数更合适。例如,重载=运算符通常作为成员函数来实现。

  • double等默认类型转换C++默认的类型转换是从下到上进行的,系统可以把int转换成float,或double,但不会反过来。

  • 内存管理

    • 栈区(stack):由编译器自动分配和释放,存放函数参数和局部变量。
    • 堆区(heap):由程序员分配和释放,效率较低,可能存在碎片。
    • 全局区(static):全局变量和静态变量存储在这里,程序结束后由系统释放。
    • 常量区和代码区:分别存放常量和代码二进制。
  • 动态_cast 和 转换函数dynamic_cast用于基类指针或引用到派生类的转换,失败则返回null或抛出异常。静态_cast需要程序员自行判断安全性,-reinterpret_cast允许不安全但有效的类型转换。

  • 回调函数回调函数通过函数指针调用,适用于需要响应事件的场景。成员函数需要this指针,而回调函数不需要。理解这一点很重要,因为类成员函数和回调函数的调用机制不同。

  • 内存管理注意事项调用类成员函数前,编译器会检查析构函数的访问性。将析构函数设为私有,可以防止在栈上分配对象,强制使用new操作符分配对象。

  • 类型转换与运算符重载类成员函数运算符需要左操作数是该类对象或引用,而友元函数运算符的左操作数可以是其他类型,这在具体实现时需要谨慎。类型转换函数无法作为友元函数定义。

  • 选项分析A选项正确,组合类的析构函数不需要显式销毁成员对象,因为当组合类析构时,成员对象会被销毁。B选项错误,基类无法到派生类的转换不可能自动发生。C选项正确,析构函数没有参数,不可重载。D选项正确,派生类需定义动态绑定。

  • 把以上内容运用于实际代码编写时,需注意运算符重载的选择,合理利用成员函数和友元函数的特点,确保内存管理的正确性,正确使用类型转换函数,并尊重编译器的内存管理规则。

    转载地址:http://ojcgz.baihongyu.com/

    你可能感兴趣的文章
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    node-request模块
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    Node.js 函数是什么样的?
    查看>>