1.定位new
优势:
它的优势在于能够允许程序员在已经分配好的内存上创建对象,而不是重新分配内存。这对于需要频繁创建和销毁对象的特定应用场景(不用多次开辟空间和释放)非常有用,因为它可以降低内存分配和释放的性能消耗,从而提高性能和内存管理的效率。
特点:
- #include
- using namespace std;
-
- class A{
- public:
- A(int a = 0, int b = 0):_a(a) ,_b(b)
- {}
- private:
- int _a;
- int _b;
- };
-
- int main()
- {
- char* buffer = new char[512];
- A *a1 = new (buffer) A;
- A *a2 = new A;
- cout << "buffer: " << (void*)buffer <
- cout << "a1: " << a1 <
- cout << "a2: " << a2 <
-
- //显示调用定位new对象的析构
- a1->~A();
- //释放常规new的内存缓冲区
- delete []buffer;
- delete a2;
-
- return 0;
- }
-
相关阅读:
Android Studio :can not resolve symbol ‘List‘
python 之f-strings 来格式化字符串
3-2、python内置数据类型(列表和元组)
【C/C++】类型转换
MacOS 安装MySQL 8(最详细,包含MacOS下MySQL的下载&安装&使用三部曲)
hdfsClient_java对hdfs进行上传、下载、删除、移动、打印文件信息尚硅谷大海哥
Centos SAMBA配置
1161 Merging Linked Lists – PAT甲级真题
Python案例实战,gopup模块,Python3行代码就能获取海量数据
OS | 【一 概述】强化阶段 —— 应用题总结
-
原文地址:https://blog.csdn.net/m0_72964546/article/details/132844230