#include <iostream> using namespace std; class Text { private: int i; char * s; public: Text(int a = 8, char * b= "nothing") { i = a; s = new char[a]; strncpy(s, b, a-1); s[a-1] = '/0'; } ~Text() { delete [] s; cout << "析构函数被调用!" << endl; } friend ostream & operator << (ostream & os, const Text & t) { os << t.s; return os; } }; int main() { const int BUF = 5120; char * buffer = new char [ BUF]; Text * p1, * p2; p1 = new (buffer) Text; p2 = new (buffer + sizeof(Text)) Text(6,"kelso");// 后移一个p1的位置, 要不然会覆盖 cout << *p1 << endl; cout << *p2 << endl; Text * p3 = new Text; cout << * p3 << endl; p2->~Text(); p1->~Text(); delete p3; delete [] buffer; return 0; }