Placement operator new

來源:互聯網
上載者:User
// 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; } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.