C++的操作符delete很特殊,跟new不对称

简介: C++的操作符delete很特殊,跟new不对称

代码声明如下:

#if __cplusplus & MEMORY_TRACE_FLAG & MEMORY_TRACE_OPERATOR
void* operator new(      long unsigned int nSize, const char* pFile, const char* pFunction, const int nLine);
void* operator new [](   long unsigned int nSize, const char* pFile, const char* pFunction, const int nLine);
void  operator delete(   void* p,                 const char* pFile, const char* pFunction, const int nLine);
void  operator delete [](void* p,                 const char* pFile, const char* pFunction, const int nLine);
#endif

宏定义(其他的头文件):

#define new       new(   __FILE__, __FUNCTION__, __LINE__)
#define delete    delete(__FILE__, __FUNCTION__, __LINE__)

奇怪的事情出现了:

new可以正确执行.

delete根本就编译不过.这是为什么?

错误是:

error: type ‘int’ argument given to ‘delete’, expected pointer
 #define delete    delete(__FILE__, __FUNCTION__, __LINE__)
                                                          ^
../gh-manager/gh_camera.h:56:17: note: in expansion of macro ‘delete’
                 delete pConfigure;
目录
相关文章
|
7月前
|
人工智能 C++
c++实现 离散数学 “自反 对称 ” 详解
c++实现 离散数学 “自反 对称 ” 详解
剑指offer(C++)-JZ28:对称的二叉树(数据结构-树)
剑指offer(C++)-JZ28:对称的二叉树(数据结构-树)
|
算法 C++
C++/PTA 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
89 0
|
存储 缓存 C++
C++/PTA 对称排序
你供职于由一群丑星作为台柱子的信天翁马戏团。你刚完成了一个程序编写,它按明星们姓名字符串的长度非降序(即当前姓名的长度至少与前一个姓名长度一样)顺序输出他们的名单。然而,你的老板不喜欢这种输出格式
78 0
|
C++
C++的操作符delete很特殊,跟new不对称
C++的操作符delete很特殊,跟new不对称
107 0
|
C++
C++第1周(春)项目1 用枚举表示对称方式
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目1 - 用枚举表示对称方式】设计函数,可以按指定的方式,输出一个平面点的对称点  下面给出枚举类型定义和main函数(测试函数),请写出output函数的实现。 #include<iostream> using namespace std; enu
828 0
|
21天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
31 2
|
27天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
70 5
|
1月前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
72 4
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
82 4