|
楼主 |
发表于 2005-12-5 00:01
|
显示全部楼层
Originally posted by powerwind at 2005-12-1 10:54 PM:
new/delete是C++的运算符,不是函数.
delete一个指针多少次都可以通过编译,但是正确做法是这样的
delete p;
p=NULL;
设p=NULL不是为了防止删除错,而是怕给一个指向的内存已经给delete的指针赋值.
delete也算对于编译器来说也是个函数吧,因为在编一器眼中就好像这样调用delete(p)
只是个比较特别的函数
就好像调用"+"号函数,都需要自己重载
例如class a,b;
a=a+b;其中+号都需要我自己写函数。
甚至new 和delete 也可以重载(C++Primer,P632)
关于:"设p=NULL不是为了防止删除错,而是怕给一个指向的内存已经给delete的指针赋值"
这个不太明白你说什么哦(什么是已近给delete的指针赋值),不过具体看看C++ primer一些看法,我也只是参考他的发言,阿阿,具体不讨论太多。
关于delete的一些关于delete NULL操作页数:P340 |
|