课程
/后端开发
/C++
/C++远征之封装篇(上)
我想问一下大神们p=NULL这句话究竟可不可以省略,为什么老师只写了delete p而没有像前几节一样加上p=NULL?
2017-11-18
源自:C++远征之封装篇(上) 6-11
正在回答
最好还是加上。因为:Teacher *p = new Teacher();执行时,系统会在“堆”中开辟一个存储空间,用来存放Teacher类的成员变量等数据;在“栈”中开辟一个存储空间存放p,然后指针p指向“堆”存储空间。delete p的作用是将p的指向作用删除,p=NULL才是将p所占用的存储空间彻底释放掉。
我好像自己懂了,就是delete p是释放掉p指向的内存,后面的p=NULL只是让p指向一个空,防止以后被调用,但不加也不算错,只能说不太好
举报
封装--面向对象的基石,本教程力求帮助小伙伴们即学即会
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号