当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: C++从零开始(十二) ——何谓面向对象编程思想 前面已经说明了C++中最重要的概念——类,并且介绍了大部分和类相关的知识,至此,已经可以开始做些编程方面比较高级的应用——设计程序,而不再只是将算法变成代码。
 

 

    摘要:使用::std::vector<>作为管理动态数组的优先选择作者:wangtianxing提交者:eastvc 发布日期:2003-9-19 17:34:41原文出处:http://www.cpphelp.net/issue/vector.html 摘要: 本文介绍了c++标准库中的容器类vector,分析了它的优点,并且建议在应用程序中使用它作为动态数组的优先选择,而不是mfc的c......
    摘要:2004年8月16日,dudoj数据持久化框架新版1.0.1b发布,同时发布了开发参考手册,这个版本比上一个版本在查询定义方面更加简化。 ......


C++从零开始(十二)——何谓面向对象编程思想

c++从零开始(十二)

    前面已经说明了c++中最重要的概念——类,并且介绍了大部分与类相关的知识,至此,已经可以开始做些编程方面比较高级的应用——设计程序,而不再只是将算法变成代码.要说明如何设计程序,有必要先了解何谓编程思想. 【程序编程相关:反射应用之一:根据控件名、属性名进行取值

——何谓面向对象编程思想 【推荐阅读:最全的HTML特殊字符列表

编程思想 【扩展信息:关于dirty buffer

    编程,即编写程序,而之前已经说过,程序就是方法的描述,那么编程就是编写方法的描述.我知道如何到人民公园,然后我就编写了到人民公园的方法的描述——从市中心开始向东走400米再向右转走200米就是.接着另一个人也知道如何去,但他编的程序却是——从市中心沿人民东路走过两个交叉口,在第三个交叉口处右转,直走就能在右手方看到.很明显,两个程序不同,但最后走的路线是相同的,即大家的方法相同,但描述不同.

    所谓的编程思想,就是如何编程,即编写程序的方法.那么之前在«c++从零开始(八)»中说的编程的三个步骤其实就是一种编程思想.这也是为什么不同的人对同一算法编写出的程序不同(指程序逻辑,不是简单的变量或函数名不同),不同的人的编程思想不同.

    如果多编或多看一些程序,就会发现编程思想是很重要的.好的编程思想编出的程序条理分明,可维护性高;差的编程思想编出的程序晦涩难懂,可维护性低.注意,这里是从程序的易读性来比较的,实际出于效率,是会使用不符合人脑思维习惯的编程思想,进而导致代码的难于维护,但为了效率还是会经常在程序的瓶颈位置使用被优化了的代码(这种代码一般使用汇编语言编写,算法则很大程度上是数学上的优化,丢弃了大部分其在人类世界中的意义).

    本系列一直坚持并推荐这么一个编程思想——一切均按照语义来编写.而语义是语言的意义,之前说它是代码在人类世界中的意义.比如桌子,映射成一个结构,有桌脚数.颜色等成员变量,那么为什么没有质量.材料.价格.生产日期等成员?对此有必要说明一下“人类世界”的含义.

世界

    我们生活在一个四维的客观物理世界中,游戏中的怪物生活在游戏定义的游戏世界中,白雪公主生活在一个童话世界中.什么叫世界?世界即规则的集合.比如客观世界中,力可作用于有质量的物体上,并进而按照运动学定律改变物体的速度;电荷异性相吸同性相斥;能量守恒等,这些都是对客观世界这个规则的集合中的某些规则的描述.注意它们都只是规则的描述,不是规则,就好像程序是方法的描述,但不是方法.即方法与规则都是抽象的逻辑概念,各自通过程序与论调来表现.程序就是我们要编写的,而论调就是一门理论,如概率论.运动学.流体力学等.而前面所说的游戏世界,是因为游戏也是一系列规则,关于这点,我在我写的另一篇文章«游戏论»中做了详细的阐述,如果还未理解世界的概念,«游戏论»中关于何谓游戏的阐述希望能有所帮助.同样,童话世界也是由一系列的规则组成.如白雪公主能吃东西,能睡觉,并且能因为吃了毒苹果而中毒;魔镜能回答问题等.

    那么就算了解了世界这个概念又怎样?有什么用?前面说了本系列是推荐按照语义来编写程序,即知道了算法后按照«c++从零开始(八)»中说的三步来编写程序.而算法是基于某些规则的,如给出1到100求与的算法是(1+100)*100/2,这里就暗示已经有那么些规则说明什么是加减乘除,什么是求与.即一个算法一定是就一个世界来说的,它在另一个世界可能毫无意义.因为算法就是方法,是由之前说的命令与被操作的资源组成,而命令与资源就是由世界来定义的.

    前面说根据算法写代码,其实是先制订了一个世界来做为算法展示的平台.
...   下一页
 ·我的thinking in java学习笔记(三)    »显示摘要«
    摘要:第三章 控制程序流程 在java的世界中,对象和数据的处理是通过运算符,而选择和判断则是靠控制语句来实现的 使用java运算符 运算符的2个用处,1、运算符接受引数,并且产生新值,例如 int a=1+1;2、运算符也可以改变操作数的值 例如 i++; 大多数的运算符都是可以作用与基本数据类型之上的,但是=、==、!=是例外,他们可以作用于任何对象之上。 优先顺序 这个其实我自己也很头疼的!所以我......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE