b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(107)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

- 142 -

Object inteces

Calling conventions for inteces(接口调用约定)

默认的调用约定是register,但当接口在程序模块(尤其当它们用其它语言编写时)间共享时,需要声明所有的方法为stdcall调用方式;实现CORBA接口时使用safecall调用约定;在Windows下,你可以用safecall来实现双重调度接口的方法。

关于调用约定的更多信息,请参考Calling conventions。

Intece properties(接口属性)

接口声明的属性只能通过接口类型的表达式进行访问,类类型的变量不行;并且,接口的属性只在接口被编译的程序中是可见的。比如,在Windows下,COM对象没有属性。

在接口中,属性的读和写必须通过方法来完成,因为不存在字段。

Forward declarations(Forward声明)

若声明一个接口时以intece关键字和一个分号结束,没有指定它的祖先、GUID以及成员列表,这是一个forward声明。Forward声明的接口必须在同一个声明区域进行定义声明,换句话说,在明和它的定义声明之间除了类型声明外,不能有任何其它内容。

Forward声明允许定义相互依赖的接口,例如

type

IControl = intece;

IWindow = intece

['{00000115-0000-0000-C000-000000000044}']

function GetControl(Index: Integer): IControl;

...

end;

IControl = intece

['{00000115-0000-0000-C000-000000000049}']

function GetWindow: IWindow;

...

end;

相互继承(派生)的接口是不允许的。比如,从IControl派生IWindow,又从IWindow

非法的。

Implementing inteces(实现接口)

Implementing inteces(实现接口)

一旦声明一个接口,在使用之前必须通过一个类来实现它。实现接口的类必须在声明时指定接口,它出现在父类的名称之后。声明有如下格式

type className = class (ancestorClass, intece1, ..., intecen)

memberList

end; forward声IControl是

- 143 - 派生

Object inteces

比如,

type

TMemoryManager = class(TIntecedObject, IMalloc, IErrorInfo)

...

end;

声明了一个叫做TMemoryManager的类,它实现了IMalloc和IErrorInfo接口。当一个类实现某个接口时,它必须实现(或通过继承实现)接口声明的每个方法。

下面是System单元中TIntecedObject的声明:

type

TIntecedObject = class(TObject, IIntece)

protected

FRefCount: Integer;

function QueryIntece(const IID: TGUID; out Obj): HResult; stdcall;

function _AddRef: Integer; stdcall;

function _Release: Integer; stdcall;

public


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-107.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 秋元羊介
      秋元羊介

      第二我们应该加快自己在南沙的岛礁建设

    • 杨文聪
      杨文聪

      我也是5s还在纠结要不要更新

    热点图片
    拼命载入中...