c++ 各种不同含义的new和delete
2018-01-21 21:06
573 查看
new操作符(new operator)堆对象; new操作(operator new)
***************************************************************************************
当你使用 string *ps = new string (“hello linux”);你使用的是new操作符;它好比sizeof一样是内置的
它的功能一是分配足够的内存容纳所需类型的对象;二是调用构造函数初始化内存中的对象。
****************************************************************************************
new操作符是调用函数来完成内存分配,咱们可以重载函数改变行为,new操作符为分配内存调用的函数名字
是new操作(operator new): void * ps =operator new(sizeof(string));它返回的是一个指针,指向开辟的
对象内存。类似于malloc,operator new职责是分配内存。但是它对构造函数一无所知!
**********************************************************************************************
placement new
一个特使的operator new:palcement new;
有时候有一些已经被分配但是尚未处理的raw内存,需要在这些内存中构造一个对象,可以使用placement new;
eg:
class A
{
public:
widget(int widegetsize);
...
};
wideget *constructwidgetinbuffer(void *buffer,int widgetsize)
{ returnnew (buffer)widget(widgetsize);}
***************************************************************************************
当你使用 string *ps = new string (“hello linux”);你使用的是new操作符;它好比sizeof一样是内置的
它的功能一是分配足够的内存容纳所需类型的对象;二是调用构造函数初始化内存中的对象。
****************************************************************************************
new操作符是调用函数来完成内存分配,咱们可以重载函数改变行为,new操作符为分配内存调用的函数名字
是new操作(operator new): void * ps =operator new(sizeof(string));它返回的是一个指针,指向开辟的
对象内存。类似于malloc,operator new职责是分配内存。但是它对构造函数一无所知!
**********************************************************************************************
placement new
一个特使的operator new:palcement new;
有时候有一些已经被分配但是尚未处理的raw内存,需要在这些内存中构造一个对象,可以使用placement new;
eg:
class A
{
public:
widget(int widegetsize);
...
};
wideget *constructwidgetinbuffer(void *buffer,int widgetsize)
{ returnnew (buffer)widget(widgetsize);}
相关文章推荐
- More Effective C++之Item M8:理解各种不同含义的new和delete
- More Effective C++----(8)理解各种不同含义的new和delete
- More Effective C++ ——08_理解各种不同含义的new和delete
- 理解各种不同含义的new和delete
- 理解各种不同含义的new和delete
- more effective c++笔记2-----Item M8:理 解各种不同含义的new和delete
- 各种不同含义的NEW和DELETE
- 八 理解各种不同含义的new和delete
- 《More Effective C++》Rule8:了解各种不同意义的new和delete(上)
- 理解各种不同含义的new和delete
- 理解各种不同含义的new和delete
- More Effective C++(条款8:了解各种不同意义的new和delete)
- C++中各种不同的new和delete
- More Effective C++ 条款8 了解各种不同意义的new和delete
- 【C++】不同含义new和delete
- More Effective C++:不同new和delete
- 条款8:了解各种不同意义的new和delete
- More Effective C++:不同new和delete
- 8. 了解各种不同意义的new 和 delete
- 8. 了解各种不同意义的new 和 delete