摘要: http://www.cnblogs.com/guaiguai/archive/2007/09/17/894819.html 现代的软件科学中, 很多内容和概念, 实际上是从数学/语言学等相当古老的领域里借来的, 为什么呢? 因为软件科学中的很多方面, 与其它学科中所碰到的问题并无不同. 一套数学理论,某个数学公式,无论从哪个层次去看,和它们有关的人分为两种:发明者,使用者. 这和软件也是相当一... 阅读全文
posted @ 2007-09-28 12:36 至尊王者 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 算起来,我用Visual C++也有将近5年的历史了。在这期间,我也曾涉猎过Visual Basic和Delphi,但都是浅尝而止;Visual C++始终是我的主业。可是努力的成果如何呢?我用Delphi作出了十多个有规模的软件,用VB--虽然我用在VB上的时间只有短短的两三个月--也有两个像样的项目;然而,在我付出了最大热情和最多努力的Visual C++上面,却只作出了三个自己看得上眼的软件... 阅读全文
posted @ 2007-09-28 12:35 至尊王者 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 继承的本质 继承关系是一种耦合度很高的关系,它与组合及一般化(genericity)一样,提供了OO中的一种基本方法,用以将不同的软件组件组合起来。一个类的实例同时也是那个类的所有的祖先的实例。为了保证面向对象设计的有效性,我们应该保存下这种关系的一致性。在子类中的每一次重新定义都应该与在其祖先类中的最初定义进行一致性检查。子类中应该保存下其祖先类的需求。如果存在着不能被保存的需求,就说明了系统... 阅读全文
posted @ 2007-09-28 12:34 至尊王者 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 函数重载 C++允许在参数类型不同的前提下重载函数。重载的函数与具有多态性的函数(即虚函数)不同处在于:调用正确的被重载函数实体是在编译期间就被决定了的;而对于具有多态性的函数来说,是通过运行期间的动态绑定来调用我们想调用的那个函数实体。多态性是通过重定义(或重写)这种方式达成的。请不要被重载 (overloading)和重写(overriding)所迷惑。重载是发生在两个或者是更多的函数具有... 阅读全文
posted @ 2007-09-28 12:34 至尊王者 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 保证类型安全的联结属性(type-safe linkage) C++ARM中解释说type-safe linkage并不能100%的保证类型安全。既然它不那100%的保证类型安全,那么它就肯定是不安全的。统计分析显示:即便在很苛刻的情况下,C++ 出现单独的O-ring错误的可能性也只有0.3%。但我们一旦将6种这样的可能导致出错的情况联合起来放在一起,出错的几率就变得大为可观了。在软件中,我... 阅读全文
posted @ 2007-09-28 12:33 至尊王者 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 全局分析 【P&S 94】中提到对于类型安全的检测来说有两种假设。一种是封闭式环境下的假设,此时程序中的各个部分在编译期间就能被确定,然后我们可以对于整个程序来进行类型检测。另一种是开放式环境下的假设,此时对于类型的检测是在单独的模块中进行的。对于实际开发和建立原型来说,第二种假设显得十分有效。然而,【P&S 94】中又提到,“当一种已经完成的软件产品到达了成熟期时,采用封闭式环境下的假设就可... 阅读全文
posted @ 2007-09-28 12:33 至尊王者 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 以下文章翻译自Ian Joyner所著的 《C++?? A Critique of C++ and Programming and Language Trends of the 1990s》 3/E【Ian Joyner 1996】 该篇文章已经包含在Ian Joyner所写的《Objects Unencapsulated 》一书中(目前已经有了日文的翻译版本),该书的介绍可参见于: http:... 阅读全文
posted @ 2007-09-28 12:33 至尊王者 阅读(524) 评论(0) 推荐(0) 编辑