C++中的new与delete

目录

1.简介

2.底层


1.简介

new是升级版的malloc,它会先开空间再去调用构造函数。

delete是升级版的free,它会先调用析构函数再free掉空间。

class A
{
public:A(int a1=0, int b1=0){a = a1;b = b1;}private:int a;int b;
};int main()
{//new会先开空间再调用构造函数A* p1 = new A;A* p2 = new A(1, 1);//new多个对象并调用构造函数初始化A* p3 = new A[3];//隐式类型转换:先构造出临时对象再调用拷贝构造A* p4 = new A[3]{ {1,2},{2,3},{3,5} };//运用匿名对象初始化,先是构造匿名对象,再拷贝构造(编译器会优化成一次构造)A* p5 = new A[3]{ A(1,1),A(2,2),A(3,3) };//delete会先调用析构函数,再free掉空间delete p1;delete p2;delete [] p3;delete [] p4;delete [] p5;return 0;
}

2.底层

//模拟底层//先是开空间,这里和malloc没区别
A* p6 = (A*)operator new(sizeof(A));
//显式调用构造函数
new(p6)A(1, 2);//显式调用析构函数
p6->~A();
//释放空间
operator delete (p6);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/54089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))

2024每日刷题&#xff08;159&#xff09; Leetcode—322. 零钱兑换 算法思想 dp实现代码 class Solution { public:int coinChange(vector<int>& coins, int amount) {int m coins.size();int n amount;int dp[m 1][n 1];memset(dp, 0x3f, sizeof(dp));dp[0][…

Vue(12)——路由的基本使用

VueRouter 作用&#xff1a;修改地址栏路径时&#xff0c;切换显示匹配的组件 基本步骤&#xff08;固定&#xff09; 下载&#xff1a;下载VueRouter模块到当前工程引入安装注册创建路由对象注入&#xff0c;将路由对象注入到new Vue 实例中&#xff0c;建立关联 发现了#/表…

高德地图2.0 绘制、编辑多边形覆盖物(电子围栏)

1. 安装 npm i amap/amap-jsapi-loader --save移步&#xff1a;官方文档 2. map组件封装 <script lang"ts" setup> import AMapLoader from amap/amap-jsapi-loader import { onMounted, ref } from vue import { propTypes } from /utils/propTypesdefineO…

企业CAD图纸防泄密措施有哪些?10个真实有效方法分享

在工程设计领域&#xff0c;CAD图纸作为核心设计资料&#xff0c;其安全性至关重要。为了确保CAD图纸在存储、传输和使用过程中的机密性&#xff0c;企业需采取多种加密方法。以下介绍十种常用的CAD图纸加密方法&#xff0c;帮助企业有效保护其知识产权。 1.安秉网盾图纸加密 …

venn可视化

文章目录 前言一、数据准备二、可视化1.二维2.三维 3.数据保存总结 前言 韦恩图&#xff08;Venn diagram&#xff09;是一种用于可视化集合之间关系的图形工具。它是由英国逻辑学家约翰韦恩于1880年引入的。 韦恩图由一组圆和它们的交集区域组成。每个圆代表一个集合&#x…

Mac笔记本上查看/user/目录下的文件的几种方法

在Mac笔记本上查看/user/下的文件&#xff0c;可以通过多种方法实现。以下是一些常见的方法&#xff1a; 一、使用Finder 打开Finder&#xff1a;点击Dock栏中的Finder图标&#xff0c;或者使用快捷键Command F。 导航到用户目录&#xff1a; 在Finder的菜单栏中&#xff0…

简单了解微服务--黑马(在更)

认识微服务 单体架构 不适合大型复杂项目 微服务架构 将单体结构的各个功能模块拆分为多个独立的项目 拆取的独立项目分别开发&#xff0c;在部署的时候也要分别去编译打包&#xff0c;分别去部署&#xff0c;不同的模块部署在不同的服务器上&#xff0c;对外提供不同的功能…

2024ICPC网络赛1: C. Permutation Counting 4

题意&#xff1a; 给定 n n n个区间 [ L i , R i ] [L_i,R_i] [Li​,Ri​]设集合 A { { p i } ∣ p i 为排列&#xff0c; L i < p i < R i } A\{ \{ p_i\} | p_i为排列&#xff0c;Li<p_i<R_i\} A{{pi​}∣pi​为排列&#xff0c;Li<pi​<Ri​}&#xff…

MySQL底层为什么选择用B+树作为索引

首先&#xff0c;我们来想想为什么这么多数据结构&#xff0c;为什么要用树这种数据结构&#xff1f; 众多的数据结构在逻辑层面可分为&#xff1a;线性结构 和 非线性结构。 线性结构有&#xff1a;数组、链表&#xff0c;基于它们衍生出的有哈希表&#xff08;哈希表也称散…

[网络]从零开始的计算机网络基础知识讲解

一、本次教程的目的 本次教程我只会带大叫了解网络的基础知识&#xff0c;了解网络请求的基本原理&#xff0c;为后面文章中可能会用到网络知识做铺垫。本次我们只会接触到网络相关的应用层&#xff0c;并不涉及协议的具体实现和数据转发的规则。也就是说&#xff0c;这篇教程是…

Windows11:解决近期更新补丁后无法上网的问题

点击开始菜单&#xff0c;打开设置&#xff0c;点击Windows更新&#xff0c;点击更新历史记录&#xff0c;点击“卸载更新“&#xff0c;找到这个补丁更新卸载即可。

【Linux】网络层协议——IP

一、IP协议 在前面&#xff0c;我们学习了应用层和传输层&#xff0c;接下来&#xff0c;我们来学习网络层&#xff0c;网络层的主要功能是在复杂的网络环境中确定一个合适的路由。 1.1 IP协议的基本概念 主机&#xff1a;配有IP地址&#xff0c;有可以进行路由控制的设备路由…

香港电讯SASE解决方案:终端与云端的安全护航

现代工作模式存在网络安全隐忧 随着远程办公模式的普及&#xff0c;越来越多员工使用各种个人终端设备&#xff0c;如台式电脑、笔记本电脑、智能手机、平板电脑等进行协作办公。然而&#xff0c;由于IT人才短缺和员工隐私等因素&#xff0c;许多企业无法统一管理端点设备的安…

【自动驾驶】决策规划算法(一)决策规划仿真平台搭建 | Matlab + Prescan + Carsim 联合仿真基本操作

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

开源免费的工贸一体行业ERP管理系统

引言 在当今数字化浪潮汹涌澎湃的时代&#xff0c;中小企业面临着前所未有的挑战与机遇。如何实现数字化转型发展&#xff0c;成为了众多中小企业主心头的大事。 据相关数据显示&#xff0c;目前我国中小企业数量已经超过了 4000 万户&#xff0c;然而成功实现数字化转型的比例…

『功能项目』按G键持续显示对话内容【61】

本章项目成果展示 我们打开上一篇60靠近Npc显示可对话标识的项目&#xff0c; 本章要做的事情是当靠近Npc按G键显示内容后&#xff0c;再按G键实现两个人的对话显示功能 首先将以下资源图片放进Art文件夹中并设置为精灵模式 在桌面上创建一个文本 讲一下对话内容复制到文本中 …

k8s(kubernetes)的PV / PVC / StorageClass(理论+实践)

NFS总是不支持PVC扩容 先来个一句话总结&#xff1a;PV、PVC是K8S用来做存储管理的资源对象&#xff0c;它们让存储资源的使用变得可控&#xff0c;从而保障系统的稳定性、可靠性。StorageClass则是为了减少人工的工作量而去自动化创建PV的组件。所有Pod使用存储只有一个原则&…

pgrouting实战应用

1&#xff09;下载地区地区数据&#xff08;下载数据是XYZM 四位数据&#xff09; 2&#xff09;下载裁剪行政区数据 3&#xff09;使用arcgis pro添加路网数据和行政区数据 4&#xff09;裁剪数据&#xff0c;仅历下行政区路网 5&#xff09;arcgis pro要素转线&#xff0…

GPT-4-Turbo 和 Claude-3.5-Sonnet 图片识别出答题的是否正确 进行比较

1、比较的图片&#xff1a; 使用GPT-4-Turbo 输入的 提问&#xff1a; 识别图片中的印刷字和手写字&#xff0c;如果写错的给一个正确答案 图片 回复&#xff1a; 在图片中&#xff0c;印刷字显示的是一系列的英语填空练习题&#xff0c;而手写字则是填入空白处的答案。以…

Eclipse折叠if、else、try catch的{}

下载插件com.cb.eclipse.folding_1.0.6.jar。将插件放到eclipse的dropins文件夹中。修改配置&#xff0c;然后保存&#xff0c;重启Eclipse即可。