条款16 成对使用new和delete时要采取相同形式
2015-09-05 13:23
513 查看
#include<iostream> #include<string> using namespace std; /* 单一对象 : object 对象数组 : n object object object ...... 一般编译器的对象数组前放了一个n用来保存对象数组的大小 */ class NewDelete{ public: NewDelete(){ cout << "NewDelete()" << endl; } ~NewDelete(){ cout << "~NewDelete()" << endl; } }; void test(){ NewDelete *s1 = new NewDelete; NewDelete* s2 = new NewDelete[100]; //..... // delete []s1; // delete s2; delete s1; delete[]s2; } int main(){ test(); typedef string AddressLines[4]; string* pal = new AddressLines; //delete pal;// AddressLines 是一个字符串数组 so 要以下面的方式进行销毁 delete[]pal; system("pause"); /*总结:new[] 必须与delete[] 成对使用 非new[]一定不要与delete[]成对使用*/ return 0; }