主题:【原创】猛批烂书 程序员面试宝典 上 -- 晨池
共:💬64 🌺96
复 不是这样的
两个例子的区别就是,1里的vector a1是在栈上
构造的,而2里的vetor a1是在堆上构造的。
1里的a1在函数出栈的时候会自动调用vector类的析构函数,释放他分配的内存,同样2里的a1,在调用delete的时候,也会调用vector类的析构函数,释放他分配的内存。
错误是没有的,当然从写法上来说是1比较好,在这种情况里2有点所谓的脱裤子放屁,而且如果你忘了写delete内存就泄露了,可1不会有这种情况,因为C++编译器在函数出栈的时候会自动调用所有临时对象的析构函数。
- 相关回复 上下关系8
压缩 3 层
🙂呵呵。 1 股市就是搏傻游 字865 2010-11-07 23:23:13
🙂不是这样的 类反词典 字678 2010-11-08 16:31:04
🙂smart pointer还是很有用的 假设 字140 2010-11-24 02:34:39
🙂错误是没有的,没有所谓a1必须要放到栈上的说法。
🙂用哪一个应该是看需求 四道口 字94 2010-11-08 12:30:42
🙂是看需求。 股市就是搏傻游 字76 2010-11-08 19:36:12
🙂指针不是这么用的 1 类反词典 字436 2010-11-07 22:55:41
🙂存疑 chenyan 字191 2010-11-08 22:50:00