[C++学习笔记01]C++介绍

  1. 为什么学习C++?

    因为 Performance per $,也就是说performance 就是钱,这个分成三个方面:

    • 耗电,芯片的耗电量,移动设备的耗电量,家用电脑的耗电量都和钱有关系。
    • 资源,家用电脑和移动设备上的处理器资源有限,因为要让一般消费者买的起。
    • 体验,在更小的设备上会有更好的体验,有更好的体验就可以挣更多的钱。
  2. 各大编程语言聚焦
      C语言:效率,灵活。
      C++语言:效率,灵活,抽象。
      JAVA/C#:抽象,生产力。
  3. C++支持的编程范式(paradigm)
      过程式(procedual):常规的C语言的编程范式。
      数据抽象(data abstraction):数据结构中的ADT,封装强调的是值语义,隐藏并暴露接口。
      基于对象(object-based):不提供抽象、继承、重载等有关面向对象语言的功能。而是把其他语言创建的对象统一起来,形成一个对象系统,以供使用。
      面向对象式(object-oriented):程序 = 对象 + 对象 + 对象 + 消息传递,只有对象内部才能使用该行为,外部对象无法使用,封装(强调对象语义)、继承、多态。
      函数式(functional):Lisp,Erlang这类语言,一切皆函数,没有for循环,全部采用函数递归的思想。
      泛型形式:程序 = 对象 + 对象 + 抽象行为,抽象行为能施加到不同类型而又大相径庭的对象之上,是一种通用的编程思想。
      模板元形式:给出代码的产生规则,让编译器产生新代码实现我们预期的功能,某些运行时工作被提前到编译期来完成,增加编译时间提高运行效率,可以做神奇的类型推导。
  4. C++值得学习的特征
      智能指针如shared_ptr、weak_ptr等
      rvalue reference;
      function/bind;
      lambda expression and closure(函数闭包).
posted @ 2015-05-15 10:59  IFPELSET  阅读(137)  评论(0编辑  收藏  举报