第一部分:
new的使用:

#define DEBUG_NEW new(THIS_FILE, __LINE__)解释 THIS_FILE:表示当前类所处的文件名;

__LINE__:表示分配内存操作所在的行数。

所以这个new多了两个参数,这是为了调试方便编译器预定义的两个参数。再加上new本身隐含了一个参数(new的对象的大小)所以是三个参数。 普通情况下,调用new,如 int* p = new int; 将产生两个操作:

1.计算int的大小,sizeof(int);

2.调用
  void* operator new(size_t nAlloc){
 return malloc(nAlloc);
}分配内存。

要使用new(THIS_FILE,__LINE__)宏,需要调用vc自己定义的new函数版本

  void* operator new(size_t nSize, LPCSTR lpszFileName, int nLine);

所以: class CA;

CA*p = new CA();
预处理程序便会将它转变为:
 
  p= new (sizeof(CA), THIS_FILE, __LINE__) CFoo(); 

 __FILE__(用来初始化 THIS_FILE)和 __LINE__ 是专用的预处理符号,它保存当前被编译的模块文件名称和行数。 其主要用途是当你的应用程序泄漏时.

new、delete用法(一)的更多相关文章

  1. ORACLE MERGE INTO UPDATE DELETE 用法

    ORACLE MERGE INTO UPDATE DELETE 用法 使用该MERGE语句从一个或多个源中选择行以进行更新或插入表或视图.您可以指定条件以确定是更新还是插入目标表或视图. 此语句是组合 ...

  2. MyBatis从入门到精通:update用法、delete用法

    update用法: 1.接口类中添加的方法: int updateById(SysUser sysUser); 2.映射文件中添加的代码: <update id="updateById ...

  3. MyBatis从入门到精通(第2章):MyBatis XML方式的基本用法【insert用法、update用法、delete用法】

    2.4  insert 用法 2.4.1  简单的 insert方法 在接口 UserMapper.java 中添加如下方法. /** * 新增用户 * @param sysUser * @retur ...

  4. 【MySql】delete用法

    delete 语句用于删除表中的数据, 基本用法为: delete from 表名称 where 删除条件; 以下是在表 students 中的实例: 删除 id 为 3 的行: delete fro ...

  5. delete 用法总结

    // delete 删除 // 语法: boolean delete 数据; // 在当前作用域上删除数据 // 用法: // 1, 删除数组中的一个元素 // 2, 删除一个对象的属性或方法 // ...

  6. delete 用法

    1.对象属性的删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete ...

  7. js delete 用法

    1,对象属性删除   function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delet ...

  8. JS delete 用法(删除对象属性及变量)

    1,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete ...

  9. Truncate Delete 用法

    Truncate /Delete  Table 1.含义上都是删除表全部记录 2.Truncate 是属于数据定义语言,系统不会写每一笔记录操作事务日志,无法恢复记录数据的操作 Truncate Ta ...

  10. 在c#中 RemoveAt、 Remove、delete用法区别

    有三种方法可以删除 DataTable 中的 DataRow: Delete 方法和 Remove 方法和 RemoveAt 方法 其区别是: Delete 方法实际上不是从 DataTable 中删 ...

随机推荐

  1. HDOJ/HDU 1251 统计难题(字典树啥的~Map水过)

    Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...

  2. jvm参数优化

    一.HotSpot JVM 提供了三类参数 现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色.例如:自适应内存管理.垃圾收集.及时编译.动态类加载.锁优化等.虽然有 ...

  3. checkbox in iOs

    UIButton *checkbox; BOOL checkBoxSelected; checkbox = [[UIButton alloc] initWithFrame:CGRectMake(x,y ...

  4. admin-openrc

    #!/bin/bash # To use an Openstack cloud you need to authenticate against keystone, which # returns a ...

  5. TM1668 Led 驱动芯片源程序

    #define P_1668DAT_In RA0 //数据输入端口 #define P_1668DAT LATA0 //数据输出端口 #define P_1668CLK LATA1 #define P ...

  6. [翻译] GVUserDefaults

    GVUserDefaults Tired of writing all that code to get and set defaults in NSUserDefaults? Want to hav ...

  7. wpf DataGrid CheckBox列全选

    最近在wpf项目中遇到当DataGrid的header中的checkbox选中,让该列的checkbox全选问题,为了不让程序员写自己的一堆事件,现写了一个自己的自定义控件 在DataGrid的 &l ...

  8. StirngUtil工具类 之 邮箱注冊 域名不区分大写和小写方法

    /** * 传入邮箱域名所有变为小写,然后拼接前缀返回 *<b>Summary: </b> * emailDomainTransform() * @param domain * ...

  9. 2440test 裸机測试 调试不进main 设置改动方法

           2440test没进main函数并非跑飞.bin文件已经烧写到开发板里了的 而是没选择载入文件,导致不能调试程序文件 主要设置例如以下:

  10. Android(java)学习笔记170:Activity的生命周期

    1.首先来一张生命周期的总图: onCreate():创建Acitivity界面       onStart():让上面创建的界面可见              onResume():让上面创建的界面 ...