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

    你可能感兴趣的文章
    Python图形处理
    查看>>
    python+flask计算机毕业设计高校物品使用互益平台的设计与实现(程序+开题+论文)
    查看>>
    Python函数,匿名函数,高阶函数,内置函数——08
    查看>>
    python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校网上迎新系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校运动会(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校选课系统(程序+开题+论文)
    查看>>
    Python+Jenkins+Allure Report接口自动化测试持续集成
    查看>>
    python+locust电商全流程性能测试
    查看>>
    Python函数运行的可执行文件的终端输出如何以一般方式静音?
    查看>>
    Python+Pytest+Allure+Git+Jenkins接口自动化框架
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    Python+pytest接口自动化 —— 接口测试基础
    查看>>
    python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
    查看>>
    Python+pytest接口自动化之cookie绕过登录(保持登录状态)
    查看>>
    python+pytest接口自动化:接口测试
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    python+requests+unittest执行自动化接口测试!
    查看>>