C++中的new用法总结:
1.new operator:
这是最常见的用法,如:
class A{...}
A *a = new A;
2.placement new:
这个new仅在一个已经分配好的内存指针上调用构造函数,因此会覆盖原来的内容,如:
A *a1 = new A;
A *a2 = new(a1) A;
那么a2会覆盖a1的值,那么a1和a2的内容都是一模一样的。
3.operator new:
这个是运算符重载,常常用作申请内容,如:
class A
{
void* operator new(size_t size)
{
return malloc(size);
}
void operator delete(void* p)
{
return free(p);
}
}
与之相对应的,也可将delete运算符重载。