- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB和C面向對象的处理方法
PAGE
PAGE 1
VB和C++中面向对象的思想和方法
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc340845207 VB和C++中面向对象的思想和方法 PAGEREF _Toc340845207 \h 1
HYPERLINK \l _Toc340845208 一.面向对象的特点 PAGEREF _Toc340845208 \h 2
HYPERLINK \l _Toc340845209 1.将对象作为操作单位 PAGEREF _Toc340845209 \h 2
HYPERLINK \l _Toc340845210 2.软件的集成式开发 PAGEREF _Toc340845210 \h 4
HYPERLINK \l _Toc340845211 3.支持对象的链接与嵌入技术 PAGEREF _Toc340845211 \h 5
HYPERLINK \l _Toc340845212 二.面向对象的局限性 PAGEREF _Toc340845212 \h 5
HYPERLINK \l _Toc340845213 失去了对于内存的控制 PAGEREF _Toc340845213 \h 5
HYPERLINK \l _Toc340845214 失去了函数的多样性 PAGEREF _Toc340845214 \h 5
HYPERLINK \l _Toc340845215 三.VB相较于C++设计思想的不同 PAGEREF _Toc340845215 \h 6
HYPERLINK \l _Toc340845216 1.可视化对象 PAGEREF _Toc340845216 \h 6
HYPERLINK \l _Toc340845217 2.事件驱动 PAGEREF _Toc340845217 \h 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;})都是
文档评论(0)