C++ New 用法總結

一、功能

1、分配內存

2、調對應構造函數創建對象

二、分類

1、常說的 new

動態分配堆內存,這塊內存用來存放類對象數據,並返回這塊內存的地址,得到對象的指針,可以使用對象的公有數據成員和公有函數。

2、operator new

功能:只是負責分配內存

用法:void* operator new(size_t size)

說明:分配 size 個字節大小的未被初始化的內存塊

3、placement new

在已經分配好的內存空間上,創建一個類對象

用法:new(void* pBuf) Class()

說明:pBuf 爲已分配的內存首地址,Class 爲要在此內存上建立的類名

三、示例

#include <iostream>

class NewTest
{

};

int main()
{
	//new : 分配內存的同時,在此內存空間上創建一個類對象(調用了構造函數)
	NewTest* pcls = new NewTest();

	//operator new : 只是負責分配內存
	void* pMemory = operator new(sizeof(NewTest));

	//placement new : 在已經分配好的內存空間上,創建一個類對象
	void* pBuf = malloc(sizeof(NewTest));
	NewTest* pclsNewTest = new(pBuf) NewTest();
}

四、參考

https://www.cnblogs.com/slgkaifa/p/6887887.html

https://blog.csdn.net/xiaorenwuzyh/article/details/44514815

https://www.cnblogs.com/slgkaifa/p/6887887.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章