标签:nbsp 内存分配 return 格式 style delete 对象 初始 覆盖
//定位new placement new //功能:在已分配好的原始内存中初始化一个对象 //所做的事情: //(1)内存已经分配,定位new并不分配内存,需要提前将这个定位new要是用的内存分配出来 //(2)初始化一个对象(的内存),也可以说是调用这个对象的构造函数 //格式: //new (地址) 类类型(); class A { A(){} ~A(){} }; void* pvoid = (void*)new char[sizeof(A)]; // 先分配出内存 A* pa = new (pvoid) A(); // 调用无参构造函数,这里不会额外分配内存 // 相当于覆盖了原来的那块内存 //释放内存 delete pa; // 传统方式也行 pa->~A(); // 析构函数可以手动调用,构造函数不能手动调用 delete[](void*) pa; // 手动释放,更灵活 // 定位new 的重载 // 定位new没有对应的定位delete void* operator new(size_t size, void* pvoid) { return pvoid; // 将收到的地址返回回去 }
标签:nbsp 内存分配 return 格式 style delete 对象 初始 覆盖
原文地址:https://www.cnblogs.com/zhiminzeng/p/13227754.html