关于Placement operator new [].

类别:编程语言 点击:0 评论:0 推荐:

今天在社区看到一个问题,在查找资料的过程中以及各位的回复中学了不少东西。记录下来。

原文:http://community.csdn.net/Expert/topic/3393/3393098.xml?temp=.7317163

?

在C++标准中,对于placement operator new []有如下的说明:

placement operator new[] needs implementation-defined amount of additional storage to save a size of array.

也就是说,申请的原始内存需要比sizeof(ELEMENT)*n多sizeof(int)字节来存储这个数组的大小。

示例程序(摘自问题,感谢作者)

#include
#include
using namespace std;
class Integer
{
private:
?int datum;
public:
?Integer(int ival = 0)
?{
??datum = ival;
?}

?Integer(Integer const& rhs)
?{
??datum = rhs.datum;
?}
?
?Integer& operator = (Integer const& rhs)
?{
??datum = rhs.datum;
??return *this;
?}

?~Integer()
?{
???? cout

本文地址:http://com.8s8s.com/it/it27271.htm