提示:C++学习记录DAY1
文章目录
前言
在科技高速发展的今天,计算机已经成为人们工作生活中不可或缺的一部分。C语言是目前最常用亦是最古老的编程语言之一,而C++是一种计算机高级程序设计语言,C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计。
一、C++的优点?
C++一方面可以与C兼容,可以之间系统底层API SDK,另一方面提供了更多范式,足够的抽象能力。C++能提升性能,C++之父Bjarne Stroustrup戏称C++可以减轻全球变暖问题编程语言的需求总结为四个:效率(efficiency),灵活(flexibility),抽象(abstraction),生产力(productivity)。C语言注重前两者,C++注重前三者,JAVA、.net这些注重后两者。C++应用范围极为广泛,例如一些浏览器、播放器。
1.包容性,向前兼容
C++与C语言完全兼容,C语言的大部分内容可以直接用于C++的程序设计,用C语言编写的程序可以不加修改地用于C++。
2.数据封装和隐藏
在C++中类是支持数据封装的工具,对象则是数据封装的实现,C++通过建立用户定义类支持数据封装和数据隐藏。
3.支持继承和重用
继承和重用的思想:在C++现有类的基础上,可以声明新类型。也就是说继承允许我们基于一个类来定义另一个类,这使得创建和维护一个应用程序变得更容易,也达到了重用代码功能和提高执行效率的效果。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有类去完成更为复杂、深入的开发。新定义的类为子类,成为派生类,子类可以从父类继承,将所有非私有的属性和方法作为自己的成员。
二、为什么难学?
1.C++支持的编程范式(paradigm)
- 过程式(procedual)
- 数据抽象(data abstraction)
- 基于对象(object-based)
- 面向对象式(object-oriented) (封装、继承、多态)
- 函数式(functional) (LISP)(递归)
- 泛型形式
- 模板元形式(是指给出代码的产生规则,让编译器产生新代码实现我们预期的功能,某些工作被提前到编译期完成,从而增和了编译时间间,但提高了运行效率。)
2.值语义与对象语义
-
值语义可以拷贝与赋值对象语义不可进行拷贝与赋值
3.functional/bin库
三、值得学习的新特性
- 智能指针如shared ptr、weak ptr等
- rvalue reference;右值引用
- function/bind;摆脱面向对象的一些束缚
- lambda expression and closure 更好的实现函数式编程
四、开发工具的选择
GNU g++与和微软Visual C++。
总结
以上就是今天C++学习的内容,本文仅仅简单介绍了C++的意义、特性。