zoukankan      html  css  js  c++  java
  • objectivec和c++的一点小比较

    最近,在改造我们程序的网络同步这一块的代码。一个ios上的程序,因为老板是在c++方面造诣很深,所以他建议我使用c++来改造。改造的过程中,碰到了非常多的在语言之间切换的问题,比如网络最底层的东西必须使用ios的库,接受数据后要转化成c++的模型。最后显示又要转化成objc的模型。其实,最后做完之后思路很简单,程序底层完全使用c++构件,虽然有个别地方必须使用objc。然后界面层使用objc。但是,我觉得这个在语言之间切换来切换去是件非常无意义的事情。不如直接使用objc来完成好。于是花了两天的时间,将c++的底层翻译成了objc。在这个翻译的过程中,我发现了c++这个语言相对于objc的优越性。

    一、面向对象上的差异

    objc和c++同样是面向对象的语言,支持继承和多态等特性。但是c++做的要更加极致,这里包括模板、运算符重载、友元函数。。。。。相比而言objc就要弱的多了,甚至对私有变量的保护都显得很棘手。对于使用键值编码的objc来说,这样一个动态语言根本就没有私有变量的概念。你可以通过键值编码来获取objc对象的任意成员变量的内容。

    二、设计模式

    在objc中和c++中使用相同的设计模式,往往objc的代码量要比c++多很多。而且像抽象工厂和工厂模式在objc中实现起来比较困难。

    三、语言本身的局限

    objc极度依赖foudation库,而c++相对灵活,对库依赖性很低。很多时候,开发者可以构件自己的库。

  • 相关阅读:
    ContextMenuStrip 类
    ToolStripMenuItem
    ubuntu16.04下安装cuda8.0
    插入排序
    Python *args **kw
    python面向对象编程
    0/1背包问题(回溯法)
    Python decorator装饰器
    Python 函数式编程
    分治策略(求解递归式的方法)
  • 原文地址:https://www.cnblogs.com/yishuiliunian/p/2830138.html
Copyright © 2011-2022 走看看