【发布时间】:2014-07-12 12:42:22
【问题描述】:
我想了解operator new(std::size_t) 和new-expression 之间的所有区别。
#include <iostream>
#include <new>
using std::cout;
struct A
{
int a;
char b;
A(){ cout << "A\n"; a = 5; b = 'a'; }
~A(){ cout << "~A\n"; }
};
A *a = (A*)operator new(sizeof(A)); //allocates 8 bytes and return void*
A *b = new A(); //allocates 8 bytes, invoke a default constructor and return A*
您能否提供它们之间的所有差异?它们的工作方式不同吗?
【问题讨论】:
标签: c++