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等函数

  • 相关阅读:
    ascii、unicode、utf-8、gbk 区别?
    python递归的最大层数?
    线程
    为何基于tcp协议的通信比基于udp协议的通信更可靠?
    什么是局域网和广域网?
    通过代码实现如下转换 ?
    TCP和UDP的区别?
    什么是ARP协议?
    PEP8 常用规范
    b、B、KB、MB、GB 的关系?
  • 原文地址:https://www.cnblogs.com/sofard/p/9821898.html
Copyright © 2011-2022 走看看