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是基于面向对象的。

0 0
原创粉丝点击