zoukankan      html  css  js  c++  java
  • OC和C++的区别

    • C++语言特点:

             1.在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;

             2.可以使用抽象数据类型进行基于对象的编程;

             3.可以使用多继承、多态进行面向对象的编程;

             4.可以担负起以模版为特征的泛型化编程。

    • OC语言特点:

            1.Objecive-C属于Smalltalk学派,其面向对象与C++面向对象编程力的Simula 67(一种早期面向对象语言)学派不同;

            2.Objective-C 是ANSI C的超集,扩展了C 语言使它具备面向对象设计的能力,例如类、消息‘继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;

            3.Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。

    C++与OC同为面向对象设计语言,他们有很多相似的对象,但是由于两者属于不同的面向对象学派。因此两者之间的比较也乐此不疲。下面简要说说他们的区别:

            1.继承:Objective-C与同Java和Smalltalk一样不支持多重继承,而C++语言支持多重继承(从侧面可以说明多重继承的效率不高);

            2.函数调用:Objective-C通过互相传递消息实现函数调用,而C++直接进行函数调用

           3.定型:Objective-C是动态定型(dynamicaly typed)。所以它的类库比C++要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。而C++,对象的静态类型决定你是否可以发送消息给它。

            4.接口:Objective-C采用protocol协议(非正式和正式)的形式来定义接口,而C++采用虚函数的形式来定义接口。

            5.方法重载:c++中允许两个方法的名字相同,参数个数相同,但是参数类型不同,以及不同的返回值类型。而OC中不允许同一个类中两个方法有相同的名字,参数个数相同,参数类型不同。
    总结 

    1.C++存在多继承,OC没有,取而代之的有代理,类别,通知等较为常见的设计模式,从而导致思维方式的不同。
    2.C++有公有和私有变量,OC没有私有变量一说,当需要访问OC类成员变量,就需要将类成员设置成类属性。
    3.C++多态允许同一个类中两个方法有相同的名字,参数个数相同,参数类型不同。而OC不可以。
    4.C++采用虚函数的形势定义接口,OC采用协议。

  • 相关阅读:
    MFC tab页面中获到其它页面的数据
    sqlite数据库中"Select * From XXX能查到数据,但是Select DISTINCT group From xxx Order By group却查不出来
    关闭程序出现崩溃(exe 已触发了一个断点及未加载ucrtbased.pdb)
    springboot 通用Mapper使用
    springBoot 发布war包
    springCloud Zuul网关
    springboot hystrix turbine 聚合监控
    springBoot Feign Hystrix Dashboard
    springBoot Ribbon Hystrix Dashboard
    springBoot Feign Hystrix
  • 原文地址:https://www.cnblogs.com/chenhaosuibi/p/3442390.html
Copyright © 2011-2022 走看看