序言
Java和C++都是面向对象的语言,也想了解一下C++,怕万一以后真的可能会用到,毕竟这些语言只是一种表达的工具,最终都要由编译器编译成机器语言,让机器能够理解并执行。
大学学过C语言,研究生期间自学的Java,后续学过一点Go,但是没有真正投入过Go的项目,这里给C++开个头。
绪论
面向对象的语言
出发点:更直观地描述客观世界中存在的事物(对象)以及它们之间的关系。
特点:
- 面向对象的语言属于高级语言。
- 将客观事物看作具有属性和行为的对象。
- 通过抽象找出同一类对象的共同属性和行为,形成类。
- 通过类的继承和多态实现代码重用。
优点:
使程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
我们需要计算机为我们做事情,我们就需要把我们要做的事情和做事的方式理清楚给计算机,它就严格按照这个步骤做。所以学习不同的语言难点在于如何按照它的标准去完成这件事情,所以才有不同的编程思想(如Thinking in Java、Thinking in C++、Thinking in Python、Thinking in Golang)。
我们相当于是在学习计算机语法写文章。
面向对象的方法
- 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。
- 对同类型对象抽象出其共性,形成类。
- 类通过一个简单的外部接口,与外界发生关系。
- 对象与对象之间通过消息进行通信。
优点:
程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障;
通过继承与多态性,可以大大提高程序的可重用行,使得软件的开发和维护都更为方便。
总结
这位老师思路很清楚,在绪论中除了讲一些基础,讲了计算机发展史,还给学习语言的人一些思路和建议:
- 非计算机专业的人学了这门语言,基本上可以解决本领域的一些问题。
- 不要以为自己学过某些计算机语言之后就可以写大型软件,可能写出来的东西出错改起来很麻烦、生命周期短、升级费劲、维护麻烦。如果真想做这件事,最好把计算机专业同学学过的东西都学一遍,不然可能就会做很多事倍功半的事情。
- 测试在软件开发中非常重要,任何人开发的软件一定有错,只是说这个错发现没有,暴露出来没。维护也很重要,如果一个软件没有人维护,那么这个软件可能会暴露出越来越多的bug。
- 写软件并不难,难的是怎么样设计一个可维护、高可用的大型软件。
参考:
与视频配套的清华大学教学书籍,郑莉版
链接:https://pan.baidu.com/s/1w8DbgpW99jAVHNQqzaVc2Q 提取码:kpve
另外看c++中文参考手册也是一个比较好的途径:cppreference.com