操作符new的用法就很常见 SomeClasss* psc = new SomeClasss(...)
实际上做的工作是:
1. 调用 void * operator new(size_t size);
即 psc = operator new(sizeof(SomeClasss));
2. 初始化
psc->SomeClasss(...)
但是你可以自己定义operator new的行为. //??原来的行为是在Heap中分配内存空间,自己也可以这么做吗?
More effecitive C++中说:
你能增加额外的参数重载函数operator new,但是第一个参数类型必须是size_t。(有关operator new更多的信息参见Effective C++ 条款8至条款10。)
当然你可以直接使用operator new函数
操作符operator new将返回一个指针,指向一块足够容纳一个string类型对象的内存。
placement new的工作和operator new差不多,唯一的差别是placement new没有分配内存
Widget * constructWidgetInBuffer(void *buffer,
int widgetSize)
{
return new (buffer) Widget(widgetSize);
}
因为buffer已经指出了分配的内存所在