您现在的位置是:首页» windows系统» objective-c和c一样吗,objective-c和c的关系

objective-c和c一样吗,objective-c和c的关系

2023-12-05 06:30:36
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。

Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大。

Objective-C创始时间是1980年代,C语言创始时间是1972年。

参考资料来源:百度百科--Objective-C

1,两者最大的相同便是:都是从 C演化而来的面向对象语言,两者都兼容标准 C语言.

2,两者最大的不同便是: Objective C提供了运行期动态绑定机制,而 C++是编译时静态绑定,并通过嵌入类(多重继承)和虚函数(虚表)来模拟实现. Objective C在语言层次上支持动态消息转发,其函数调用语法为 [object function],而且C++为 object->function().两者的语义也有不同,在 Objective C里是说发送消息到一个对象上,至于这个对象能不能处理消息(也就是说实现了这个函数与否)以及是处理还是转发消息都不会 crash,而在 C++里是说对象进行了某个操作,如果对象没有这个操作的话,要么编译会报错(静态绑定),要么程序会 crash掉的(动态绑定).

3, Objective C不支持多重继承,而 C++支持.不过 Objective C通过 proxy(代理)和 Category(类别)可以更优雅地实现这一特性.这一点也包括了 overwriting(覆盖)和 overloading(重载)两者的不同.

4,函数名字解析也不同, Objective C的函数名字解析是函数名称+参数名称的,而 C++只包括函数名称.因此在 Objective C中以下是合法的,因为两者解析出来分别类似于 foo:bar1:和 foo:bar2:,是不同的;

-(int)foo:(int) bar bar1:(int)bar;

-(char*)foo:(int) bar bar2:(int)bar;

而在 C++中以下是非法的,编译将出错,因为两者解析出来都是类似于 foo:int,编译器无法辨别.

5, Objective-C没有 C++里有的构造函数和析构函数,其对应物为 alloc-init/free.

6, Objective-C 2.0了加入了垃圾回收机制(在iPhone和 iPad上不可用),而 C++没有.

7, Objective-C不允许在 Stack上分配内存,只能在 heap上进行,而 C++两者都允许.

8, Objective-C不支持引用,而 C++支持.

9, Objective-C不支持模板,而 C++支持.

10, Objective-C是 Smalltalk系的,而 C++是 Simula系的.

可以这么说 Objective-C在 C之上进行了一层简单的包装,而 C++在 C++之上进行了复杂的包装,但 Objective-C让人感觉更优雅简洁.

参考:/MarsGG/articles/1948697.html

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: object objective