文档章节

AbstractErrorProc - 抽象错误处理的指针

涂孟超
 涂孟超
发布于 2014/09/26 15:32
字数 210
阅读 5
收藏 0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  {父类}
  TBase = class
    procedure proc; virtual; abstract; {抽象方法}
  end;

  {子类}
  TChild = class(TBase)
    procedure proc; override; {在子类中覆盖、实现方法}
  end;


  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TChild }
//方法实现
procedure TChild.proc;
begin
  ShowMessage('IsChild');
end;


//AbstractErrorProc 将要调用的过程
procedure err;
begin
  ShowMessage('Err...');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  B: TBase;
  C: TChild;
begin
  {AbstractErrorProc 是抽象错误处理的指针, 对应一个无参数的外部过程}
  AbstractErrorProc := Addr(err);

  {在子类中调用方法, Ok}
  C := TChild.Create;
  C.proc; {IsChild}
  C.Free;

  {父类通过子类实现后调用方法, Ok}
  B := TChild.Create;
  B.proc; {IsChild}
  B.Free;

  {父类自实现后调用方法, 将会调用 AbstractErrorProc 指定的错误过程; 因为父类中的方法还是抽象的}
  B := TBase.Create;
  B.proc; {Err...}
  B.Free;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2007/12/31/1021763.html

涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
libdvbpsi源码分析(一)架构分析

源码层次目录如下所示: 其中: psi.c: psi section structure dvbpsi.c: 抽象成DVB/PSI decoders,封装出接口,供应用层调用。 descriptor.c: 各种描述符数据的抽象 demux.c: 解复用器 ...

地狱的烈火
2013/11/08
1K
0
void及void指针深层次探索

1.概述   许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。   ...

地狱的烈火
2013/04/26
227
0
C/C++语言void及void指针《转》

1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的...

狂斩一条龙
2011/08/20
0
0
C++ 编程规范

组织和策略问题 第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化) 无需在多个项目或者整个公司范围内强制实施一致的编码格式。 第1条 在高警告级别干净利落地进行编译 高度重视警告...

ucliaohh
2016/10/14
20
0
C++的异常处理机制(二)

目录 前言 C++的异常处理机制(一)大概介绍了异常处理机制,本文主要是对异常throw类对象的一些注意事项进行记录。其实和throw普通数据类型是一样的,只是要主要throw的时候对象的生命周期而已...

simonforfuture
2018/01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
6分钟前
1
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
9分钟前
15
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
10分钟前
1
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
52分钟前
5
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
59分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部