查看单个帖子
  #87 (permalink)  
旧 2008-03-07
Elminster 的头像
Elminster Elminster 当前离线
超级版主
 
注册日期: 2002-09-09
帖子: 1,764
Elminster 正向着好的方向发展
默认 回复: 请教各位大大关于动态内存管理的问题……

引用:
作者: ajoo 查看帖子
注意,都注意啦!这就是我一贯反对c++的析构和拷贝构造的原因。内存管理就是内存管理,它有它自己的特点(比如可以延期释放;因为无可观察的副作用,可以由编译器进行大幅度的优化,比如放到栈上,rvo,或者重复使用已分配的内存等等),强行把它绑到其它资源的管理上去属于缘木求鱼,自废武功那种。c++设计的retarded-ness由此可见。

其实,用了gc,内存管理基本上已经不是一个主要问题了。你就可以把精力放在管理其它资源上,而让人惊讶的是,相比于繁琐脆弱的内存管理,其它资源的管理工作相当清闲(随便一个狗屁模式都要涉及内存处理,而谁没事总去鼓捣文件,数据库啥的?)。在using或者try-finally(或者我推荐的auto)的帮助下,也非常容易。因为内存这个最关键的资源得到了保障,其它的资源你弄错了最多得到一个ClosedResourceException,而不是神秘不可琢磨的core dump,甚至undefined behavior(比如我明天忽然惊喜地发现银行的一个bug诡异地让我得到100万)。
这就是我和你一贯分歧的地方了:析构和拷贝构造完全可以和内存管理脱钩的,对象的生命期不等于对象所占据的内存块的生命期。用 GC,也可以用析构和拷贝构造。
回复时引用此帖