C++与VB异同之面向对象方法比较(一)
来源:互联网 发布:sqlserver union 编辑:程序博客网 时间:2024/05/20 08:01
面向对象技术最初是从面向对象程序设计语言开始的,面向对象的应用不仅深入到软件开发方法、操作系统、数据库,甚至到硬件设计,无疑,面向对象技术已经是思维科学中的一项工程技术。
Ø 面向对象的特点
1.抽象性
2.封装性
3.多态性
4.继承性
面向对象技术是以“对象”为核心的,对象是具有特殊属性和行为方法的实体,类是对象的抽象,也就是对象是类的实例;对象包括属性和方法。而在C++中与之对等的概念是数据成员(共有、私有、保护)和成员函数,面向对象内在具有了数据抽象和信息隐蔽等特性。
u 类
² 对象的创建和撤销
l C++
在C++中,定义一个类的实体,即对象时,构造函被隐式调用。构造函数一般用来对类的数据变量进行初始化,此外构造函数还可以重载、复制和转换。当程序中止或者对象被撤销时,析构函数被调用。
l VB
在VB中有两个事件与C++的构造函数和析构函数相对应,那就是Initialize(初始化)和Terminate(终止),当程序的某一部分代码首次被执行时,Initialize事件被触发,当对象的作用域实效时,或者程序中止时,或者对象的引用被置空(nothing),对象被撤销,Terminate被调用。
总而言之,Initialize负责初始化操作。而Terminate做一些善后处理工作。
² 成员函数和方法
l VB与C++
在VB中类的方法实现是公有过程即公用子程序和公用函数。
举例
Add 和Count
Public Sub Add(ByVal Name AS String)Rem Codes go hereEnd SubPublic Function Count()As LongRem Codes go hereEnd Function
在C++中实现时,用公有函数或者保护成员函数来实现。
此外主要注意的是:
Vb中仅有Private和Public,没有Protected,还有就是VB的Private过程和C++的Private成员函数不能是“方法”,方法是对象的行为方式,提供消息接口和实现对象的功能。
² 继承和多态
C++有明确严格的继承机制,方式有Private和Public,层次可以多重继承,并且可以从多个基类派生。
然而VB没有显示继承机制。VB中实现继承的方法是利用接口技术来实现的,VB可以继承接口,这也是继承。并且接口的继承为多态提供了可能。
u 属性和左边函数
VB对象属性的实现时最简单的是定义公有变量,VB的类模块和窗体的公有变量都是属性,这种可读写的属性没有数据隐蔽性。此外也可以先定义私有变量,然后用Property Get或者PropertyLet过程定义要执行的代码函数体。
² Property Get
Property Get 语句,定义获取属性值的属性过程。该属性用一个字符串来标识画笔的当前颜色。
Property Get 语句
声明 Property 过程的名称,参数以及构成其主体的代码,该过程获取一个属性的值。
语法:
[Public | Private| Friend] [Static] Property Get name[(arglist)] [As type]
[statements]
[name =expression]
[Exit Property]
[statements]
[name =expression]
End Property
² Property Let
Property Let语句可以设置及获取一个自定义类的属性(或者说控件的属性)
使用Property Let为类设置属性,例:
Public Property Let yourval(ByVal strVar)yourval = strVarEnd Property
l VB与C++举例对比
VB:
Property Let Demo(a,b,c,d) RemCodes go hereEnd Property
调用时:Demo(a,b,c)=d
这样可以实现对私有数据的保护和在Property过程中触发其它事件来校验数据。
Property过程与C++的左边函数是很相似的(返回值为引用类型的函数是左边函数)
Int& Demo(inta,intb,intc)
调用时:Demo(a,b,c)=d
总而言之一句话,C++是面向对象的,而VB是基于面向对象的。
- C++与VB异同之面向对象方法比较(一)
- C++与VB 异同(一)
- 结构化方法与面向对象方法之比较
- 结构化方法与面向对象方法之比较
- 结构化方法与面向对象方法之比较
- Python 面向对象与 C++、Java 的异同
- 面向过程方法与面向对象方法的比较
- 初探C(面向过程)与C++(面向对象)的比较
- C++、java面向对象的异同
- 面向过程与面向对象方法的比较
- 面向过程与面向对象方法的比较
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- 关于C面向对象编程(一) 与C++内在联系
- Objective-C与Java面向对象对比学习(一)
- C语言面向对象编程(一):封装与继承
- The Last Practice
- JS setTimeout() 传参
- C++ primer第二次阅读学习笔记(第11章:泛型算法)
- viewport meta 标签在手机浏览器上控制布局
- 如何百度蜘蛛喜欢你
- C++与VB异同之面向对象方法比较(一)
- Children’s Queue
- Androidannotations——开源框架简介&简易使用准备
- 贪心算法之哈夫曼编码
- 蟠桃记
- java基础15
- Androidannotations——Home主页,了解AndroidAnnotations
- svn标准目录结构解说
- 母牛的故事