有人可以向我解释 C++ 入门第 5 版中的这一段:
术语:new 表达式与 operator new 函数
库函数 operator new 和 operator delete 的名称具有误导性。与其他运算符函数(例如 operator=)不同,这些函数不会重载 new 或 delete 表达式。事实上,我们无法重新定义 new 和 delete 表达式的行为。
new 表达式总是通过调用 operator new 函数来获取内存,然后在该内存中构造一个对象来执行。删除表达式总是通过销毁对象然后调用运算符删除函数来释放对象使用的内存来执行。
通过提供我们自己对 operator new 和 operator delete 函数的定义,我们可以改变内存的分配方式。但是,我们不能改变 new 和 delete 操作符的这个基本含义。
我没有看到operator new
oroperator delete
与任何其他重载运算符(如赋值运算符)之间的区别=
。那么“被误导性命名”是什么意思?我们都知道我们不会重载类似的表达式,fObj + fObj
但我们重载了运算符而不是表达式本身。
事实上,我发现这一段本身就具有误导性。毕竟我们可以“滥用”任何可重载的运算符以及来自哪个运算符new
,delete
那么他在本段中的意思是什么?谢谢!