在VC里用 new (buf) Foo时编译通不过

batizhou 2004-10-09 05:08:31
const int chunk = 16;
class Foo {
public:
int val() { return _val; }
Foo() { _val = 0; }
private:
int _val;
};

char *buf = new char[ sizeof(Foo) * chunk ];
Foo *pb = new (buf) Foo;
if ( pb->val() == 0 )
delete[] buf;

C++ Primer里的源码,在VC里编译通不过,难道VC不支持在指定内存空间初始化对象吗?
哪位高人知道原因,请赐教!
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
batizhou 2004-10-09
  • 打赏
  • 举报
回复
多谢多谢
短歌如风 2004-10-09
  • 打赏
  • 举报
回复
加上:
#include <new>

如果是MFC程序,把
#define new DEBUGNEW
去掉。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧