我的重点是:打好用c++日常工作的基础,基本概念。
c++ 集合了面向对象编程,泛型编程和过程化编程三种编程范式于一体。(所有说c++难都是因为要学的东西太多,实际上学会了就会异常灵活)
-
过程化编程: 强调算法,是要让问题去满足语言的特性,是top-down 的设计,自顶向下,旨在把大型程序分解为小的便于管理和处理的任务。不断地分解,变为一个个小小的模块,用函数实现。C语言就是典型的过程化编程。
-
OOP :为了应付复杂程度不断增高的编程任务而发明的,通过重用代码和抽象通用概念的方式解决大型项目的处理, 强调数据, 旨在设计和问题的特性对应的数据类型,是用语言去满足问题的需求。是bottom up的方法。所以OOP方法首先就是要设计类,是从类的设计到整个程序的完成的。当然设计有用又可靠的类是很难的,所以厂商提供了大量的类库(都是很可靠的经过仔细测试的代码),可以一定程度简化我们的工作
-
泛型编程:由模板提供。强调独立于特定数据类型,编写独立于类型的代码,比如对不同类型的数据进行排序,一般要对整数,小数,字符等类型各写一个排序函数,但是泛型编程通过对语言本身进行扩展,可以只写一个泛型函数,(即不是特定数据类型的函数)。OOP侧重于管理大型项目,而泛型编程提供了执行常见任务的工具,比如对数据排序或者合并链表。
模板被证明是C++最优秀的部分之一,但是它存在很多争议和误解。
C++也来自于bell lab, 主旨是实用实用实用
所有有效的C程序就是有效的C++程序,c++程序可以用c的软件库
c++的二重性:OOP提供高级抽象;C语言提供低级硬件访问
cin, cout是预定义的对象,cin是istream类的对象,cout是ostream类的对象,这两个类都在iostream文件中定义
函数是C++的编程模块,基本编程部件
复合类型:用基本的内置数据类型创建复杂的类型,类是最高级的复合类型
数组