首页 > 教育学习 > 为什么 > 为什么我觉得 Objective-C 的内存管理比 C++ 要复杂得多?这类语言是否是趋势?

为什么我觉得 Objective-C 的内存管理比 C++ 要复杂得多?这类语言是否是趋势?
2012-01-19 20:12:32   来源:   点击:

    为什么我觉得 Objective-C 的内存管理比 C++ 要复杂得多?这类语言是否是趋势?

    6 个答案

    • 答案 1:

      C++ 其实是放弃了内存管理作为语言特性,而把责任推给了库。这么做有几个负面的历史遗产:

        让整整一代程序员认为 OOP 这种东西是不需要 GC 的(注意我认为 reference-counting 也是一种 GC)。

        让 value-copy 成为一种编程风格。

        让采用不同内存管理模式的人在一个项目里互相制造麻烦。一个 10 人的团队,只要一个人某天头脑发热用了一个 raw pointer ,整个团队所有的 shared_ptr 的用法就会整个失败。

      具体可看:http://techsingular.net/?p=229
    • 答案 2:

      恩,除非硬件底层,一般都不需要用户自身操纵内存数据,因为会很容易就发生溢出等异常。以后的编程趋势就是越来越容易越来越简单。。。
    • 答案 3:

      我的观点是看情况了,如果一个手持的移动设备需要一个垃圾回收,那是要占很多内存的(手机的内存很小啊)。对于一个台式机,2 - 4 GB 内存就不用考虑了。使用Objective C的iOS没有延迟就是吧效率最高的内存管理交给了开发者。使用Java的Android会为每一个进程开一个虚拟机。延迟肯定有的。Android需要用高配置的硬件来弥补延迟。厂商的成本就增加了。Google选择Java的原因只有一个就是就是吸引开发者。选择Android就是选择一个广告终端。
    • 答案 4:

      objc的内存管理算简单的
    • 答案 5:

      应该是趋势了,语言和框架的目标是提供某种机制减少开发者犯错的机会,而不是依赖于开发者的素质。不过,我还是比较喜欢汇编、C、C++。
    • 答案 6:

      Automatic Reference Counting 代表了趋势

相关热词搜索:

上一篇:WWF 每年收入能有多少?
下一篇:广州哪里可以买到专业的登山鞋?如:SCARPA,ASOLO,AKU??