读书笔记:Effective C++ 2.0 版,条款9(避免隐藏标准形式的new)、条款10(new、delete对称定义)

news/2024/11/19 11:35:46/

条款9: 避免隐藏标准形式的new

#include <cstddef>
#include <new>
#include <iostream>
class MyClass {
public:// 用户定义的带有参数的 operator newstatic void* operator new(std::size_t size, int extra) {std::cout << "Custom new with extra parameter\n";void* p = ::operator new(size);return p;}    // 使用 using 语句,明确地指出我们还想使用标准的 operator newusing ::operator new; //只要这一句也可以static void * operator new(size_t size){ //定义inline函数也可以return ::operator new(size);}MyClass() {std::cout << "MyClass constructor\n";}
};
int main() {MyClass* obj1 = new MyClass; // 使用标准的 operator newMyClass* obj2 = new(10) MyClass; // 使用自定义的 operator newdelete obj1;delete obj2;return 0;
}

条款10: 如果写了operator new就要同时写operator delete
方便自己管理内存,减少内存附加的信息(例如小对象的size信息)。
具体估计得根据编译器实现去检查衡量大量小对象的new、delete细节。
内存池需要考虑自己写对称的new、delete。


http://www.ppmy.cn/news/1158478.html

相关文章

【git】500 Whoops, something went wrong on our end.

在访问公的的git 时出现了500错误提示. 500 Whoops, something went wrong on our end. 哎呀&#xff0c;我们这边出了问题。 TMD 出了什么问题了&#xff1f;&#xff1f;&#xff1f;一脸懵逼。 登录git 服务器。 查看git的状态。 命令&#xff1a; gitlab-ctl statu…

MATLAB中zp2tf函数用法

目录 语法 说明 示例 质点弹簧系统的传递函数 zp2tf函数的功能是将零极点增益滤波器参数转换为传递函数形式。。 语法 [b,a] zp2tf(z,p,k) 说明 [b, a] zp2tf(z, p, k) 将一个分解的传递函数表示方式转换。 将单输入/多输出&#xff08;SIMO&#xff09;系统的多输出…

单片机常见的屏幕驱动移植

目录 一个驱动.c文件的典型模块划分&#xff08;5&#xff09; 1. Include files 2. Local type definitions (typedef) 3. Local pre-processor symbols/macros (#define) 4. Local variable definitions (static) 5. Function implementation - global (extern) and loc…

Springboot视图解析与模板引擎~

视图解析&#xff1a; springboot默认不支持JSP&#xff0c;需要引入第三方模板引擎技术实现页面渲染 视图处理方式&#xff1a;转发&#xff0c;重定向&#xff0c;自定义视图 thymeleaf的使用&#xff1a; 1&#xff1a;引入starter <dependency><groupId>o…

【Overload游戏引擎细节分析】视图投影矩阵计算与摄像机

本文只罗列公式&#xff0c;不做具体的推导。 OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们为了产品上的需求与编程上的方便&#xff0c;一般会抽象一个摄像机组件。摄像机类似于人眼&#xff0c;可以建立一个本地坐标系。相机的位置是坐标原点&#xff0c;摄像机的朝…

Vue-3.5vuex分模块

模块module 由于vuex使用单一状态树&#xff0c;应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时&#xff0c;store对象就有可能变得相当臃肿。&#xff08;当项目变得越来越大的时候&#xff0c;Vuex会变得越来越难以维护&#xff09; 模块创建 先在store文…

MES系统在制造业中的SOP工艺标准管理

一、SOP工艺标准管理的定义和意义 SOP工艺标准管理是指制造企业通过制定、执行和管理SOP&#xff0c;确保产品生产过程的一致性、质量和效率。SOP是一系列规定和描述特定操作过程的文件&#xff0c;包括工艺步骤、操作指导、质检要求等。SOP工艺标准管理的意义在于&#xff1a…

【网络】网络入门

网络入门 一、网络发展二、网络协议初识1、认识"协议"2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型 三、网络传输基本流程1、同局域网的两台主机通信2、跨网络的两台主机通信 四、网络中的地址管理1、IP地址2、认识MAC地址 一、网络发展 独立模式&#xff1a…