博客
关于我
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/

    你可能感兴趣的文章
    Nacos 融合 Spring Cloud,成为注册配置中心
    查看>>
    Nacos-注册中心
    查看>>
    Nacos-配置中心
    查看>>
    Nacos2.X 源码分析:为订阅方推送、服务健康检查、集群数据同步、grpc客户端服务端初始化
    查看>>
    Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
    查看>>
    Nacos2.X源码分析:服务注册、服务发现流程
    查看>>
    NacosClient客户端搭建,微服务注册进nacos
    查看>>
    Nacos中使用ribbon
    查看>>
    Nacos使用OpenFeign
    查看>>
    Nacos使用Ribbon
    查看>>
    Nacos做注册中心使用
    查看>>
    Nacos做配置中心使用
    查看>>
    Nacos入门过程的坑--获取不到配置的值
    查看>>
    Nacos原理
    查看>>
    Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
    查看>>
    Nacos启动异常
    查看>>
    Nacos命名空间配置_每个人用各自自己的命名空间---SpringCloud Alibaba_若依微服务框架改造---工作笔记001
    查看>>
    Nacos和Zookeeper对比
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>
    Nacos基础版 从入门到精通
    查看>>