placenew.cpp
来自「C++ Primer(第三版)的随书源代码」· C++ 代码 · 共 40 行
CPP
40 行
// Section 8.4.5
// $ CC placenew.cpp
/*
new expression worked!
*/
#include <iostream>
using std::cout;
using std::endl;
#include <new.h>
const int chunk = 16;
class Foo {
public:
int val() { return _val; }
Foo() { _val = 0; }
private:
int _val;
};
// preallocate the memory, but no Foo objects
char *buf = new char[ sizeof(Foo) * chunk ];
int main() {
// create a Foo object in buf
Foo *pb = new (buf) Foo;
// check that an object was placed in buf
if ( pb->val() == 0 )
cout << "new expression worked!" << endl;
// cannot use pb here
delete[] buf;
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?