OOPCPP

Learn C++ Programming Language

This project is maintained by cugwhp

第四章 类和对象

1. Inctroduction

提及程序设计,就不得不考虑“复用”技术。上一章,我们介绍了函数,从一个角度看,函数就是若干条语句的集合,用以实现某个较为单独的功能。本章,我们介绍一种新型的封装方式,来实现某个功能,这种方式称之为类或对象。

面向过程 VS. 面向对象

函数,在面向过程的程序设计中占有举足轻重的作用。很显然,面向过程的程序就是将一个复杂的问题(过程),逐步分解为若干个子问题的过程,甚至进一步细分。因此,我们常说面向过程是一种“分而治之”的思想,如何将一个大的问题,逐层分解为若干个小的子问题,进而一直细分到一个函数(几十行代码)可以完成的工作为止。显然,面向过程的方法可以很好地训练我们分析问题的能力,函数在其中起着至关重要的作用。

然而,运用函数来分解过程的方式也会遇到瓶颈,那就是因为我们在解决一个复杂问题的时候,其函数的参数可能非常的大,一般而言,一个函数的参数在10个以内,我们还勉强可以接受,那么当一个函数的参数几十、上百个的时候,这就会出现参数灾难。函数让人费解。这个时候,有人在想,我们能否将若干个变量和若干个函数封装到一起呢,在封装体内,函数与变量直接的访问是透明的。这就好比前几十年,国有大型企业,他里面包含有学校、医院、食堂、邮局、工厂等等,完全就是一个小社会,在这个国有大型企业内部,很多资源是可以免费或花费很少代价就可以拿到的。简单而言,当我们把若干个函数和若干个变量封装到一起,在封装体内的函数可以自由访问封装体内的成员变量时,我们称之为这个封装体为类或对象。

类或对象尽管是有函数和成员变量组成的,但它的特性确与函数有着本质的区别。对象可以具有继承的关系,可以更好地分享。这样的一个变革,就将函数参数灾难隔离在各个对象之中,降低了参数的数量。

2. 课件下载

3. References

4. Exercises


返回主目录 | 上一章 C++程序设计 | 下一章