总结

1、在匿名对象使用完后立刻调用析构函数

2、在栈区的对象,空间被释放后立刻调用析构函数;

3、在堆区的对象,空间被delete后调用析构函数;free不能调用;

代码验证:1


void test() {
MyArry(10).getLen();//在栈区定义使用有参定义一个对象,并调用getLen方法,执行完立刻析构;cout << "在栈区定义使用有参定义一个对象,并调用getLen方法" << endl;
}

执行结果

代码验证:2

void test() {MyArry(10).getLen();//在栈区定义使用有参定义一个对象,并调用getLen方法,执行完立刻析构;cout << "在栈区定义使用有参定义一个对象,并调用getLen方法" << endl;//MyArry* arry1 = new MyArry(10);//new出来的空间只有使用delete时才会调用析构函数;MyArry arry1(10);//在栈区使用有参构造定义一个对象;
}

代码验证:3 不使用delete

void test() {MyArry(10).getLen();//在栈区定义使用有参定义一个对象,并调用getLen方法,执行完立刻析构;cout << "在栈区定义使用有参定义一个对象,并调用getLen方法" << endl;MyArry* arry1 = new MyArry(10);//new出来的空间只有使用delete时才会调用析构函数;
}

代码验证:3 使用delete

void test() {MyArry(10).getLen();//在栈区定义使用有参定义一个对象,并调用getLen方法,执行完立刻析构;cout << "在栈区定义使用有参定义一个对象,并调用getLen方法" << endl;MyArry* arry1 = new MyArry(10);//new出来的空间只有使用delete时才会调用析构函数;delete arry1;
}

C++析构函数调用时机相关推荐

  1. C++继承中构造函数、析构函数调用顺序及虚析构函数

    首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数, ...

  2. C++构造函数和析构函数调用虚函数时都不会使用动态联编

    先看一个例子: #include <iostream> using namespace std;class A{ public:A() {show();}virtual void show ...

  3. C++拷贝构造函数调用时机

    C++拷贝构造函数调用时机 C++中拷贝构造函数调用时机通常有三种情况 示例 C++中拷贝构造函数调用时机通常有三种情况 使用一个已经创建完毕的对象来初始化一个新对象 值传递的方式给函数参数传值 以值 ...

  4. 2020-12-14(全局/静态对象的构造函数和析构函数调用的时机以及地址)

    一般的对象实例化在什么时候实例化的呢? 是不是在main函数运行到那里的时候,然后创建对象,会调用类里面的构造函数. 那当我们遇到全局/静态对象的时候,它是不是也是需要在main函数里面慢慢构造呢? ...

  5. C++中构造函数和析构函数调用的时机

    今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢.写段代码总结下 [cpp]  view plain copy #include < ...

  6. java没有指针和析构所以_Java程序员学习C++之构造函数和析构函数调用的时机

    今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢.写段代码总结下 #include usingnamespacestd; classBox ...

  7. 逆向看C++ new申请堆对象的构造,析构函数调用

    转自:coNgY1 先来放总结,以后回看的时候方便回忆: 对new 而言,如果是空类也会分配一字节. 对 new x[],这种在地址最前面会多分配四字节的空间来保存分配的对象个数. new x[]这种 ...

  8. SYN攻击原理 accpet()函数调用时机

    TCP 建立连接 SYN 攻击原理 我们都知道三次握手的第一步是客户端向服务器发送连接请求,第二步是服务器回应客户端的请求,第三步是客户端确认连接.从上图可以看出,前两个报文的 SYN 都置为1,说明 ...

  9. 构造和析构函数调用顺序

    一. 理论 1. 构造函数和析构函数 ①构造函数 构造函数不能有返回值 缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空  创建一个对象时,系统自动 ...

最新文章

  1. C#中调用C++ 动态链接库 dll 的方法
  2. VS2010 出现打开关联文档错误的解决方案
  3. hdu4454 三分 求点到圆,然后在到矩形的最短路
  4. angular2新手学习笔记(1)概述
  5. 怎样让项目经理更受企业和团队欢迎
  6. VTK:在多面体数据上使用裁剪和封盖用法实战
  7. git-ftp Can't access remote 'ft://...', exiting...问题记录
  8. javafx 使用_使用JavaFX AnimationTimer
  9. React开发(115):子组件无法处理复杂的数据格式
  10. 天津科技大学计算机网络,计算机网络PPT(天津科技大学讲稿-张强)第一章英文对照...
  11. 张志华:机器学习的发展历程及启示
  12. servlet ---- servlet入门
  13. server端多个文件的压缩 .NET
  14. 全网最全的IDEA热部署方案,看完弄懂,再也不用加班了~
  15. 趋势安全软件卸载:如何不需要密码或忘记密码卸载Trend Micro OfficeScan Agent?
  16. 【完整matlab程序】【预测程序】狼群优化算法及BP神经网络
  17. C++访问控制 public、privates和protected说明符
  18. 返利网app有那些?哪一个最好用?
  19. c语言子程序返回指令,十八、使用call和ret指令实现子程序的调用和返回
  20. Office365强制Microsoft Authenticator验证登录如何关闭

热门文章

  1. IDEA插件系列(9):MyBatisX插件——Mybatis插件
  2. 深度学习之:数据增强总结与实战
  3. java 栈 先进后出_java中的stack
  4. 输入框输入手机号,中间插入空格格式化,且限制11位
  5. 编译原理-语法制导翻译 课后习题+笔记
  6. Hystrix中的HystrixRuntimeException错误
  7. 模糊PID基本原理及matlab仿真实现(新手!新手!新手!)
  8. .git文件夹_关于Git使用的(吐血)整理再也不用担心因为电脑故障而失去自己辛苦写下的论文或代码...
  9. centos7镜像(centos7镜像文件)
  10. 二十、SQL 数据分析基础与进阶(一)