C++ vs Objective-C

  前段时间不小心去应聘过iPhone开发的职位,被问起Objc和C++的异同,总是直言对C++的偏爱。用两种语言各自写过一点代码,我想我还是可以写点文字,做个浅薄的对比的。

  首先是内存管理的问题:

  C++的版本到了C++11也不支持语言层面上的GC,恰好Objc也一直不肯在iOS设备上支持GC。

  C++没有GC是和谐的,因为C++对象就是被设计用来静态分配内存的。

  C++的构造函数不可继承,在编译期就和对象绑定,而在运行期不具有多态性。因此在编译期就可确切知道对象的大小,从而在栈区分配对象。

  而Objc通过消息机制,总是在运行期绑定对象与方法,多态性实在是好,通过[self class],类的静态方法,比如allloc,竟然也是运行期多态的,所以似乎只能在堆区分配对象。

  唉本来写此文想写得好看一点,赚点点击,然后PS个找工作信息的。结果写到一半来了电话,终于有适合自己的工作了,懒得写下去了,就这些了,不好意思。

你可能感兴趣的:(Objective-C)