首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关 placement new,该怎么处理

2012-02-16 
有关 placementnew正在看primer C++ v3.08章关于New的 有个例子,但在我的机器上怎么也编译不了#includene

有关 placement new
正在看primer C++ v3.0 


  8章 关于New的 有个例子,但在我的机器上怎么也编译不了
  #include<new>
  //#include<new.h>

  char *arena =new char[sizeof(AA)];

  AA *ptr=new (arena)AA("aa"); //这一句出错.提示arena 未定义

  ptr->~AA();
  
  AA *ptr=new (arena)AA("bb");


  在类AA文件中也引 #include<new> 这是为什么呢? 还有<new>与<new.h>有什么区别? 谢谢!



[解决办法]
new是标准新定义的,里面的名字放在namespace std中
在include后加上using namespace std;或using std::arena试试
[解决办法]
上面错了,没细看...

C/C++ code
#include <new> //#include <new.h> class AA{};int main(){    char   *arena   =new   char[sizeof(AA)];     AA   *ptr = new(arena) AA();     ptr-> ~AA();         ptr=new(arena) AA();     return 0;}
[解决办法]
不好意识 是#define
[解决办法]

怪不得
char *arena =new char[sizeof(AA)]; 

AA *ptr=new (arena)AA("aa"); //这一句出错.提示arena 未定义 

ptr-> ~AA(); 

AA *ptr=new (arena)AA("bb"); 

看不出哪有错啊
你定义宏的时候最好别和标准的一些名字重了
不然编译必出错
自己取名字
丰衣足食

热点排行
Bad Request.