zoukankan      html  css  js  c++  java
  • 记录,待总结4

    1.delete运算符只能删除堆中的空间,删除栈中的空间会导致出错
    例1:
    2.关于强制类型转换
    例2:

    输出:
    construct     0012FF38     //a的构造
    construct     0012FF34     //b的构造
    99
    construct     0012FF30     //临时对象的构造
    =     0012FF38             //赋值
    delete     0012FF30        //临时对象的析构
    1000
    construct     0012FF2C     //临时对象的构造
    =     0012FF38             //赋值
    delete     0012FF2C        //临时对象的析构
    2
    =     0012FF38             //赋值
    35
    delete     0012FF34        //
    delete     0012FF38        //
    解释:不管是显示类型转换还是隐式类型转换,都有以下一些共同点:
    1)先构造一个临时对象,把临时对象赋值给目标,然后析构临时对象
    2)由于要构造一个临时对象,必须要有只带一个参数的构造函数
    3)由于要用到赋值函数,当类中有指针成员时,要定义自己的复制控制函数

    3.前置自加与后置自加
    例3:

    解释:
    1)前置自加按引用返回。
    后置自加按值返回,且返回的是临时对象。
    2)后置自加中的参数没有实际意义,只是为了区分前置
    3)很显然前置自加效率更高,尽量用前置

    4.这是对例3的一个应该举例
    例4:

    输出:

    construct     0012FF38
    1
    copy     0012FF34
    2
    2
    copy     0012FEB8
    copy     0012FF30
    delete     0012FEB8
    delete     0012FF30
    2
    3
    delete     0012FF34
    delete     0012FF38
    解释:如果看懂了例3和前一篇文章,这个结果是很好理解的

  • 相关阅读:
    Sqli-labs less 12
    Sqli-labs less 13
    Sqli-labs less 14
    Python3之collections模块
    Python3之 contextlib
    Python3之sqlalchemy
    Python3之RabbitMQ
    Python3之redis使用
    Python3之Memcache使用
    python自动化开发学习 进程, 线程, 协程
  • 原文地址:https://www.cnblogs.com/windmissing/p/2559876.html
Copyright © 2011-2022 走看看