// hhtest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <new>
using namespace std;
const int chunk = 500;
class Foo {
public:
int val(int para)
{
cout<<para<<endl;
return _val;
}
Foo() { _val = 0; }
//private:
int _val;
};
// 预分配内存 但没有 Foo 对象
char *buf = new char[ sizeof(Foo) * chunk ];
int main() {
// 在 buf 中创建一个 Foo 对象
Foo *pb = new (buf) Foo;
pb->val(30);
// 在buf中创建另一个Foo对象,观察是否能争取运行,结果可以
Foo *pd=new(buf)Foo;
pb->val(40);
// 检查一个对象是否被放在 buf 中
//if ( pb->val() == 0 )
// cout << "new expression worked!" << endl;
// 到这里不能再使用 pb
delete[] buf;
getchar();
return 0;
}