作者:flyfish 2014-2-25
维数
二维的世界
设想在桌面一张极大的纸上,上面有,三角形、四边形、五边形等等包括其他图形;它们能在纸面上自由移动,只是不能离开纸面做上下运动。一个三角形在纸上,从上看能看出它是三角形,然后到桌边,视线与纸平行看,能看到的只有线。二维世界的图形们,它们看对方看到的只有线。
一个小球在这张纸上滚动,突然掉地上了。这些二维世界的图形们它得出的结论就会是:小球已经不存在了。三维世界的人能看见小球还在了,只是掉在地上了。
1如何让二维世界的图形们感受到三维世界的存在?
2关系数据库的通常用二维表结构来描述事物和事物之间的联系。二维的思维可以表达出这个的世界吗?
3数组由类型名,标识符和维数组成的复合类型(Compoundtype),计算机只要空间无限大,是否可以表现出无限维的数组呢?
4我们的宇宙到底是多少维的?并不是所有的知识来自于我们的感官,因为人的视觉受限,人如何理解第三维之外呢?不识庐山真面目,只缘身在此山中。
不高效的Virtual,不是真实的,但被真实地使用着
1 Virtual Function虚函数不高效为什么还需要它呢?
在C++发源地贝尔实验室中,有大量的C程序员,最初发明C++的原因是让C程序员更高效率的工作。虚函数是可选的。如果不想让程序拥有一点的额外的开销,那就不用。在设计类时,不应该担心程序效率问题,在恰当好处时想用就用。在程序设计完成之后,如果要改进程序运行效率,那么就可以去掉可以不使用虚函数的函数。
抽象是为了易于理解,代码最重要的是要让人理解,而不是让机器理解。C++语言设计的目的是解决实际问题,要求实用,他不是追求最理想的抽象。
需要,而不过度使用。
MFC框架不是一蹴而就做成的,它不是一个抽象度很高的框架,抽象度过高容易损失性能,微软在抽象和性能之间做一个平衡。写代码是一件很具体的事,而编程方法很抽象。最难的事情是对尺度的把握,很多事情都在把握一个度,寻求某种平衡。
2面向对象的编程语言通常会引用生物学的进化论来说明,例如简单的继承关系,C++语言里面有个多重继承,而多重继承产生的菱形继承就像近亲结婚,编译器这关是通不过的。
而Java就不支持多重继承,Java为什么不支持多重继承呢?
答案是This is a design decision taken by the creators of java. The keywordis simplicity and rare use。
C++还要需要用Virtual解决这菱形继承问题。
3虚数
虚数(imaginary number)在数学中不是真实的数字,但被真实地使用。Imaginary这个词
源于笛卡尔用来辨识方式的非普通数的解。因为我们知道i= ,从表示虚数的单词得知虚数是前人想象中的一个数,这想象中的一个数,它是什么我们不知道,但我们相信它的存在。计算器中为什么是无效输入呢?
不存在也是一种存在的0
1 二进制系统是现代计算机的基础,在计算机中所有的事物都可以用0和1表示,代价就是0和1的序列会非常的长。罗马数字系统里面没有0,如果用罗马数字系统来构建计算机呢?
2如何以非算术规则来理解0呢?
1除以 1/10 =10
1除以 1/100 =100
1除以 1/1000 =1000
1除以 1/10000 =10000
1除以 1/100000 =100000
那么1 除以 0 结果是接近无穷大
如果 0 ÷1=0的方式处理 1 ÷ 0 =x, 以分数形式交叉相乘,结果是毫无意义的 0=1,
允许 1 ÷0的存在就是个灾难。
假设 0 ÷ 0=x,交叉相乘 x等于任何数,那么如果计算机处理0÷ 0那么就rand随机产生一个数字给用户,但这种情况是不会放生的,此处无论哪个程序员都会排除0作为除数的情况。
2 一个存储介质首先是处于空的状态,之后里面存储了0和1的状态,这样文件就被创造了出来,读出0和1的状态,通过0和1个数及排列,我们人为地为这个文件的赋上了意义,文件传输时,只需要得到这个文件的0和1的序列。
好似道生一,一生二,二生三,三生万物。从简单开始,慢慢开始复杂,最后追求原始的简单状态。
西方的Object与中国的对象,面向对象很流行
god-made Objects and Man-made Objects
Object这个单词大陆翻译成对象,台湾翻译成物件
In the beginning God created the heaven andthe earth
一切都是对象
造这个字的由来 土+撇+口+走之旁
Creat=Dust/Mud+Alive+Mouth+Walking
Man was created from the dust of theground.
中国的神话是女娲用泥土造人。西方也是用泥土造人。本的东西总是相同的。
每个Object都是不同的,就像世界上没有一模一样的两片叶子。每个OBject都会有自己与众不同的东西,为其他OBject提供服务。
原文:http://blog.csdn.net/flyfish1986/article/details/19932525