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