收藏 分享(赏)

VB和C++面向对象的处理方法.doc

上传人:ysd1539 文档编号:6211607 上传时间:2019-04-02 格式:DOC 页数:5 大小:48KB
下载 相关 举报
VB和C++面向对象的处理方法.doc_第1页
第1页 / 共5页
VB和C++面向对象的处理方法.doc_第2页
第2页 / 共5页
VB和C++面向对象的处理方法.doc_第3页
第3页 / 共5页
VB和C++面向对象的处理方法.doc_第4页
第4页 / 共5页
VB和C++面向对象的处理方法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1VB 和 C+中面向对象的思想和方法VB 和 C+中面向对象的思想和方法 .1一面向对象的特点 .21将对象作为操作单位 .22软件的集成式开发 .43支持对象的链接与嵌入技术 .5二面向对象的局限性 .5失去了对于内存的控制 5失去了函数的多样性 5三VB 相较于 C+设计思想的不同 61.可视化对象 .62事件驱动 .7很多时候,作为开发者,是没有必要对于每一个函数的底层 函数都了如指掌并且在每一次开发都为怎么编写底层函数而消耗大量的精力。例如排序,在程序之中每次都为自己编写一个程序来一个一个对于底层内存块精心控制从而达到排序的目的其实是不必要的,这一切工作我们都其实是可以用一个共用模板

2、来解决的,为此, C 中添加了等算法库以头文件的形式来对函数进行了一次脆弱的封装(因为编译器只是从语法角度把他们和原函数区分开了,而实际上他们之间对于编译器来说并没有语义上的区别(Expert C Programming chapter.13),而 VB 在这个基础之上更近了一步,以 Basic 语言为基础,直接封装了所有我们需要的模板,并且将其变成可视化的控件,从而大大减少了操作的复杂性。从一方面来 说,程序 员们不必再 为一个控件的安排和绘制操心,可以很方便并且快捷地做出更加友好的可视化的界面,但是另一方面,也使得 VB 不能够有效地控制内存等底层部分,也一定程度上降低了函数的多样性,从而

3、造成一些错误。2一面向对象的特点1将对象作为操作单位 VB 采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合, 变成一个可操作的实 体,如窗体、窗体中的命令按钮、标签、文本框等。从 C+语言的角度来说,如果我们定义一个对象“计数器”会这样来做class Counterpublic: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()retu

4、rn flag;private:char flag;int num;对象空间的创立,以调用对象的 够造函数的形式实现,在 这 个函数中,会针对不同的重载类对内存实行不同的分配和初始化制度。但是单单对于用户来说,用户并不关心我们在内存调用而来怎样的一个单元,这个单元有多大,这个单元能用来存什么东西和我们 可以对这个单元做什么才是用户真正希望知道的。相应的用户也无法了解底 层究竟在进行什么样的改 动, 为了保护,我们也不能让用户太随意地对于这个单元做出操作。在这样 思想的引导下,面向 对象的程序做了 这样两个措施:封装数据,我们只能通过提供的接口来对结构内的数据进行操作,而一切随意的改动,例如直接

5、对其中的数据进行赋值都是无法实现的。 这样就保证了数据在 “一片漆黑”的环境中不会被其他进程篡改和破坏,从而保持了程序的稳定性。在上面的例子中,不论是对于数据的加(void add_num()num+;)还是对于数据的读(int get_num()return num;)都是通过调用方式实现的,就算在“读”的过程中出现了赋值或者种种错误,对不起,我们只是通过栈传递给了你一个形式参数,而数据的本体是早已经被保护起来了的,所以并不会出现任何 问题。封装函数,从某方面来讲, 这是面向对象程序为了维持自身的稳定性与简便性所必须做的事情,另一方面,这也限制了用户对 于对象的操作。我 们规定对象中只能存在

6、 规定的函数来对对象做各种调用,除了之前的初始化构造,赋值 和取得值得动作,也可以 规定例如 “打印信息“等操作。但是,如果该对象没定义这样的函数,例如下面这 个例子Class catPublic:mew()printf(“a cat mewn”);在这个程序中,我们定义了对 象猫并且定义了猫的一个方法,于是我们可以通过调用 mew 来让猫喵喵叫,但是如果我们想让猫汪汪叫就只能修改 对象内部的函数才能做到了,大多数情况下这种做法并不是一种很好的做法。在不清楚底层构造的情况下严格按照提供的方法来 对对象做出操作才是明智的选择。32软件的集成式开发 VB 环境中,编程者可设计 界面、 编写代码、调

7、试程序,直至把应用程序编译成可在 Windows 中运行的可执行文件,并为它生成安装程序(百度知道 VB 的新特性有哪些)。这也是其他非可视化软件难以达到的效果。毕竟没有什么比用 户自己亲眼看见更加直观 的形式了。同 样的在 Window 下运行 QT 的时候却还总是会为生成窗体和代码分离的问题所苦恼,能 够实时调试 并且最直观看到效果, 这也是 VB 的一大优势。 3支持对象的链接与嵌入技术 VB 的核心是对对象的链接与嵌入(OLE) 技术的支持,它是访问所有对象的一种方法。利用 OLE技术,能够开发集声音、图像、 动画、字处理、 Web 等对象于一体的程序。 (Visual Basic 程

8、序设计教程 刘炳文) 二面向对象的局限性所谓有得必有失,在获得了大大的方便的同 时, VB 也失去了一些底 层的应用方面失去了对于内存的控制也许这对于一个小小的程序来说并不是很需要在意的一件事情,但是当我 们不能关注到每个 malloc()(在 C+中被 new 关键字取代)的时候,我们也不能关注到每一个 free()(delete),有经验的程序员会把申请了地址一定要释放作为一条金科玉律(永远不要把这些工作全部交给系统自动回收),但是在 VB 的设计理念之中,我们开始变得不太在乎这些东西了。为了解决这一问题,VB 也对自己进行了一些修改使之能做出一个 链接库兼容 C 语言并且通过 C 来对底

9、层进行必要的控制。虽然我们并不需要对这 方面担心太多(毕竟这不是 VB的基本设计思想),知道怎么去 处理这些问题对于之后一些神奇的 BUG 排除还是非常有帮助的。失去了函数的多样性在说这句话的时候其实还是有所衡量的,在 这里必须声明,本文所指的函数多样性是事件驱动方法的多样性,例如,在 FORM 之中只有 Click,Load, DoubleClick 等事件来驱动方法,但是我么要规定一个新的事件,例如,我想规定如果鼠标在窗体上面按右键做出某种轨迹达到关闭窗体的目的(参考火狐浏览器的鼠标手势功能),这时候我们就需要一些非常复杂的操作了。不过这方面并不能真正称之 为面向对象程序 设计思想的问题,

10、我 们面对的只是这个对象不是我们需要的或者我们觉得这个对象不完善的问题而已,只要熟悉底层代码的开发, 这样的问题并不是不能 够解决的。4三VB 相较于 C+设计思想的不同1.可视化对象C+在早期被开发出来的时候,曾经一度被称为“C with classes”,从这点可以看出,C+中对于对象的实现,实际上是由 类的实现来完成的。 换句话说 ,C+仍然更加关注底层的部分,只是将操作码和函数进行了一次封装,这一点启示在 C 语言之中曾经就以“强类型”的概念出现过,比如说,我们有了一个 INT 型的变量,在 绝对的“强类型”编译器之中,把一个INT 赋值给 FLOAT 是绝对不被允 许的,另一方面,编

11、译器又规定了对于 INT 诸如加减乘除之类的操作,预存了 INT 在面对这些操作符的时候应该怎么做。在这样的技术之上,C+ 其实是把这种方便的体系的构造权利下放给了用户,让用户 也能自己定义类似于“强类型”的结构。但是 VB 的创新在于可视化方面,在 这一点概念被提出之前,大多数用户还是处于 DOS界面的一片黑白之中,人们认 知的只有键盘和显示器,而 对 于处理图形界面专门存在的鼠标根本没有意识,更别提现在触屏系 统“ 点一下”的操作了。 VB 在设计理念中,鼠 标的单机和双击都被作为事件的一种类型,从而可以 驱动设定好的方法。换而言之,VB 让对象变得更加符合人类的认知方式,本来对 象就是对

12、于拥有共同特点事物的抽象,在这一点上,VB 将这些抽象额数据重新还原为可视化的对象,把抽象的 对象变 成了实在的东西,在设计对象时编程人员不必编写和描述每个对象的程序代码,VB 按照编程人 员的设置的属性值自动为之生成对象的代码(软件开发技术 page36)。虽然用户所操作的并不是真正的对象,但是可以通过这样的操作达成某种映射,从而完成对于实际对象的操作。 “用户界面”这一概念可以说是面向对象编程的又一个提升,有了用 户界面,才得以成就 现 在发达的信息产业,才让计算机不再是专业人员所研究的东西。2事件驱动 有了之前的基础之后,为了决定 VB 在什么时候应该做出一个相 应的方法呢,与 C 环境

13、不同,在Windows 环境下,程序一改过去以语句为基础一条条运行的模式,而是以事件驱动方式运行的,每个对象都能响应多个不同的事件,每个事件都能驱动一段代码 事件过程, 该代码决定了对象的功能。就是说,我们通过不同的事件可以 实现程序在不同的方法之 间的跳转!我们再也不用担心程序的运行结构问题,在 QT 之中,这种解决方案被称作“信号和槽“的机制(C+ GUI QT4 编程 page2)。我们总是能够针对于现在所做出的操作产生一个结构代码,通 过这个代 码,在程序中找到适合的方法,来把整个过程实现的。也就是说。我们把程序做出了高度模块化的处理,每次执行只是在等待信号和运行信号所指向的程序块之间

14、的切换。这样 就能够实现高速的编程原则 。也是正因 为这个原因,在 VB 的程序之中不需要明显的开始结束程序(软件开发技术 page36)参考资料:Expert C Programming 人民 邮电出版社【美】 Peter Van Der Linden 著21 天学通 C+ 人民邮电出版社【美】 Jesse Liberty&Siddhartha&Bradley Jones 著C+ GUI QT4 编程 第二版 电子工业出版社【加拿大】Jasmin Blnchette【美】Mark Summerfield 著C+程序设计 清华大学出版社 姜学锋 周果清 刘君瑞 编著Visual Basic 程序设计教程 清华大学出版社 刘炳文 编著5软件开发技术 电子工业出版社 冯萍 朱明 孔庆芸 赵光飞 等编著百度知道

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报