动态构造与析构对象数组C++入门课件
动态创建对象数组的 C++写法,new和delete怎么配合用,多新手一开始都容易踩坑。delete []p
少了中括号,就只删掉第一个对象,其他的还在那儿等你手动清理呢,内存泄漏就是这么来的。课件里讲得挺清楚,例子也比较实用,适合刚接触对象数组的同学,理解构造函数和析构函数的自动调用方式。
构造函数和析构函数是对象生命周期的关键,尤其是数组里多个对象一起管理的时候。像pa1 = new A[3]
这种写法,系统会自动给每个对象调用构造函数。但如果你后面写的是delete pa1
而不是delete []pa1
,那只有第一个 A 对象的析构函数被调了,其他两个就悬在那儿了。
嗯,如果你用的是自定义资源管理类,比如里面有new
、malloc
的东西,那更得注意释放方式。否则该释放的没释放,不该释放的反而释放了,容易出 bug。建议养成习惯,数组用delete []
,单个对象用delete
,别混用。
如果你还不太熟构造和析构的执行顺序,推荐顺带看下C++继承:构造与析构的那些事儿,里面对父类子类调用顺序讲得蛮清楚的。理解透了,写类时心里更有数。
还有个链接也挺实用的,构造函数和析构函数,主要讲基础部分,适合跟这份课件搭配着一起看,学习效率高一点。
如果你正在写复杂类、对象数组比较多,又怕内存出问题,那这课件真的挺值得一看。搞懂它,起码你知道哪里容易出错,怎么用才稳当。
2.77MB
文件大小:
评论区