zoukankan      html  css  js  c++  java
  • 构造函数,C++内存管理,内存泄漏定位

    构造函数

    1.构造顺序

      虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数

     

    2.必须使用初始化列表

      (1) 引用成员,常量成员;

      (2) 基类没默认构造函数(自己重载覆盖了),

           (3)类对象成员没默认构造函数(自己重载覆盖了)

    3.析构顺序

         reverse( 虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数)

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    内存管理

    1.stack ---编译器自动管理,函数参数,局部变量,比较小

    2.heap ---程序员自己管理,程序结束OS可能回收,存在内存碎片

    3.static,全局----初始化的全局变量,未初始化的全局变量区

    4.文字常量区 ---程序结束 释放

    5.程序代码区 --- 存放函数的二进制代码

    留待添加:

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    内存泄漏定位

    (1)在windows平台下通过CRT中的库函数进行检测; 
    (2)在可能泄漏的调用前后生成块的快照,比较前后的状态,定位泄漏的位置 
    (3)Linux下通过工具valgrind检测

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    手写strcpy,memcpy,strcat,strcmp等函数

  • 相关阅读:
    Spring Cloud的小改进(五)
    国内最火的10款Java开源项目,都是国人开发,CMS居多
    创建服务的注册与发现 Eureka (四)
    Eureka的的概述(三)
    sourcetree 跳过首次登录
    基于IDEA工具 lombok 的使用
    面试总结
    Spring Cloud的概述(二)
    微服务的概述(一)
    原子性 CAS算法
  • 原文地址:https://www.cnblogs.com/sofard/p/9821898.html
Copyright © 2011-2022 走看看