- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB和C++面向对象的处理方法.doc
VB和C++中面向对象的思想和方法
VB和C++中面向对象的思想和方法 1
一.面向对象的特点 2
1.将对象作为操作单位 2
2.软件的集成式开发 4
3.支持对象的链接与嵌入技术 5
二.面向对象的局限性 5
失去了对于内存的控制 5
失去了函数的多样性 5
三.VB相较于C++设计思想的不同 6
1.可视化对象 6
2.事件驱动 7
很多时候,作为开发者,是没有必要对于每一个函数的底层函数都了如指掌并且在每一次开发都为怎么编写底层函数而消耗大量的精力。例如排序,在程序之中每次都为自己编写一个程序来一个一个对于底层内存块精心控制从而达到排序的目的其实是不必要的,这一切工作我们都其实是可以用一个共用模板来解决的,为此,C中添加了Alogrithm.h等算法库以头文件的形式来对函数进行了一次脆弱的封装(因为编译器只是从语法角度把他们和原函数区分开了,而实际上他们之间对于编译器来说并没有语义上的区别(Expert C Programming chapter.13),而VB在这个基础之上更近了一步,以Basic语言为基础,直接封装了所有我们需要的模板,并且将其变成可视化的控件,从而大大减少了操作的复杂性。从一方面来说,程序员们不必再为一个控件的安排和绘制操心,可以很方便并且快捷地做出更加友好的可视化的界面,但是另一方面,也使得VB不能够有效地控制内存等底层部分,也一定程度上降低了函数的多样性,从而造成一些错误。
一.面向对象的特点
1.将对象作为操作单位
VB采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合,变成一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。从C++语言的角度来说,如果我们定义一个对象“计数器”会这样来做
class Counter{
public:
Counter(char A){flag=A;num=0;}
~Counter(){}
void add_num(){num++;}
void set_flag(char c){flag=c;}
int get_num(){return num;}
char get_flag(){return flag;}
private:
char flag;
int num;
}
对象空间的创立,以调用对象的够造函数的形式实现,在这个函数中,会针对不同的重载类对内存实行不同的分配和初始化制度。但是单单对于用户来说,用户并不关心我们在内存调用而来怎样的一个单元,这个单元有多大,这个单元能用来存什么东西和我们可以对这个单元做什么才是用户真正希望知道的。相应的用户也无法了解底层究竟在进行什么样的改动,为了保护,我们也不能让用户太随意地对于这个单元做出操作。在这样思想的引导下,面向对象的程序做了这样两个措施:
①.封装数据,我们只能通过提供的接口来对结构内的数据进行操作,而一切随意的改动,例如直接对其中的数据进行赋值都是无法实现的。这样就保证了数据在“一片漆黑”的环境中不会被其他进程篡改和破坏,从而保持了程序的稳定性。在上面的例子中,不论是对于数据的加(void add_num(){num++;})还是对于数据的读(int get_num(){return num;})都是通过调用方式实现的,就算在“读”的过程中出现了赋值或者种种错误,对不起,我们只是通过栈传递给了你一个形式参数,而数据的本体是早已经被保护起来了的,所以并不会出现任何问题。
②.封装函数,从某方面来讲,这是面向对象程序为了维持自身的稳定性与简便性所必须做的事情,另一方面,这也限制了用户对于对象的操作。我们规定对象中只能存在规定的函数来对对象做各种调用,除了之前的初始化构造,赋值和取得值得动作,也可以规定例如“打印信息“等操作。但是,如果该对象没定义这样的函数,例如下面这个例子
Class cat{
Public:mew(){printf(“a cat mew\n”);}};
在这个程序中,我们定义了对象猫并且定义了猫的一个方法,于是我们可以通过调用mew来让猫喵喵叫,但是如果我们想让猫汪汪叫就只能修改对象内部的函数才能做到了,大多数情况下这种做法并不是一种很好的做法。在不清楚底层构造的情况下严格按照提供的方法来对对象做出操作才是明智的选择。
2.软件的集成式开发
VB环境中,编程者可设计界面、编写代码、调试程序,直至把应用程序编译成可在Windows中运行的可执行文件,并为它生成安装程序(百度知道 VB的新特性有哪些)。这也是其他非可视化软件难以达到的效果。毕竟没有什么比用户自己亲眼看见更加直观的形式了。同样的在Window下运行QT的时候却还总是会为生成窗体和代码分离的问题所苦恼,能够实时调试并且最直观看到效果,这也
您可能关注的文档
- Sox9基因促软骨形成作用机制研究进展.pdf
- Spantide对急性坏死性胰腺炎胰腺肠源性感染治疗作用的研究.doc
- SPEHPLC法测定大鼠血清中的牛磺胆酸.pdf
- SPF级实验动物设施改建工艺设计探讨.pdf
- SPOT5卫星影像测绘能力分析_燕琴.pdf
- SPOT5遥感影像融合方法的比较和改进.pdf
- SPSS软件在绿茶鲜汁浸提工艺研究中的应用.pdf
- SP粘结剂的制备及其在裂化催化剂中的应用研究.pdf
- SRB法与MTT法细胞计数应用比较.pdf
- SS67A快速固化的高强度粘接剂硅胶.doc
- 智慧校园智能学习环境对初中英语教师信息技术应用能力的影响教学研究课题报告.docx
- 初中生物实验课程中实验探究活动对学生合作能力的培养教学研究课题报告.docx
- 有机肥在杨树种植中的应用与生长周期研究教学研究课题报告.docx
- 基于人工智能的初中历史教学技术革新与教师培训策略分析教学研究课题报告.docx
- 高中历史人工智能辅助教学资源建设:用户需求调研与多模态数据采集策略教学研究课题报告.docx
- 智慧教育云平台下的小学生阅读理解能力评价研究教学研究课题报告.docx
- 基于国家智慧教育云平台的初中语文教学资源整合与共享策略研究教学研究课题报告.docx
- 《艺术教育在青少年创造力与审美能力培养中的教育技术与创新研究》教学研究课题报告.docx
- 《音乐治疗在特殊教育学校自闭症儿童注意力培养中的应用研究》教学研究课题报告.docx
- 高中英语读写教学中的阅读理解策略与写作技巧融合研究教学研究课题报告.docx
文档评论(0)