随笔分类 -  面向对象

 
(转)c/c++ 内存管理
摘要:1、malloc()malloc()函数用来分配内存:将总共需要的字节数作为参数传递给该函数,返回值是指向最新分配的内存的指针,而如果内存没有分配好,则返回值是NULL。malloc()的使用技术:some_type*pointer;pointer=malloc(count*sizeof(*pointer));注:(1)这个方法保证malloc()会分配正确数量的内存,而不用考虑pointer的生命。如果pointer的类型后来变了,sizeof算子自动确保要分配的字节数仍然正确。(2)malloc()返回的内存是“没有“初始化的。这块内存可能包含任何随机的垃圾,你可以马上用有效数据或者至少是 阅读全文
posted @ 2012-06-19 15:23 wenxp2006 阅读(189) 评论(0) 推荐(0)
重载、覆盖、隐藏
摘要:成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。(这里与覆盖唯一区别是在于有 阅读全文
posted @ 2012-06-19 10:13 wenxp2006 阅读(181) 评论(0) 推荐(0)
虚函数与纯虚函数的区别
摘要:虚函数:为了方便使用多态特性,常常需要在基类中定义虚函数。纯虚函数:1、原因与虚函数相同;2、在很多情况下,基类本身生成的对象是不合理的;虚函数与纯虚函数的区别:1、类里声明为虚函数的话,这个函数是实现的,哪怕是一个空实现,它的作用就是为了能让这个函数在它的子类里面可以被重载,这样的话,编译器就可以在使用后期绑定来达到多态效果;纯虚函数只是一个接口,是个函数的声明而已,要留在子类里面去实现。2、虚函数也可以在子类里面不重载;但纯虚函数必须在子类里面去实现。通常我们把很多函数加上virtual,这是一个好的习惯,虽然牺牲了一些性能,但是增加了面向对象的多态性,因为很难预料到父类里面的这个函数不用 阅读全文
posted @ 2012-05-27 19:47 wenxp2006 阅读(281) 评论(0) 推荐(0)
面向对象(OO)程序设计
摘要:前言 本文主要介绍面向对象(OO)程序设计,以维基百科的解释:面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。 简略来说,面向对象程序设计,指采用了面向对象的方法来进行程序设计。设计指一种把计划、规划、设想通过视觉传达出来的活动过程,它是一种创造性,积累性,实践性的工作。提笔写设计的文章是很有压力的,它不像深入一个知识点一样让人容易有的放矢,一千个读者心中有一千个哈姆雷特,同样的项目两个人来做架构肯定不一样。包.. 阅读全文
posted @ 2012-05-14 15:41 wenxp2006 阅读(202) 评论(0) 推荐(0)
Object-Oriented
摘要:软件危机(Software Crisis)软件技术总是处于不断发展变化中,新工具、新技术相继产生。这就要求软件产业和软件工程师们不停的寻求软件设计和开发的新途径。由于日益增长的软件系统的复杂性和软件产业内部愈演愈烈的竞争,这种要求变得更加紧迫。为了克服这种要求带来的软件危机,必须解决以下问题:1、在系统设计中,如何表现问题的真实实体?2、如何以开放的界面(interface)设计系统?3、如何保证模块(module)的可重用性(reusability)和可扩展性(extensibility)?4、如何开发能够容忍(tolerant)未来可能的变化模块?5、如何提高软件的生产力和减少软件开销?6 阅读全文
posted @ 2012-05-14 15:40 wenxp2006 阅读(199) 评论(0) 推荐(0)