delphi 纯虚函数的应用

delphi 纯虚函数的应用


编程有时候会用到,有部分功能是未来实现的,具体做什么不知道。所以需要预留空间,当这类经常会用到,每一次都要重复上下文代码,把功能安置其中,这样非常麻烦。有没有一种方法,可以把位置函数功能夹杂其中。把功能作为参数传递,这样每次只写新功能即可,这时纯虚函数就排上了用场。

  1. 什么情况会用到纯虚函数
    功能未知反正需要做些什么,具体什么不知道

  2. 怎么用

type
 //  此类作为形式传递参数用
 TMyUnknowClass = class
   //  纯虚函数 本类中无需实现只声明即可
   procedure DoSomthing; virtual; abstract;
 end;

 //  实际使用时再继承它
 TUseClass = class(TMyUnknowClass)
   //  重写你自己需要的功能
   procedure DoSomthing; override;
 end;

 TForm2 = class(TForm)
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   //  把这个定义纯虚函数的类传递进去
   procedure Add(A: TMyUnknowClass);
   { Public declarations }
 end;


implementation

{$R *.dfm}


procedure TForm2.Add(A: TMyUnknowClass);
begin
 //  预留的功能 功能未知
 A.DoSomthing;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
 m: TUseClass;
begin
 //  使用时定义并继承有纯虚函数的类 完成实际功能
 m := TUseClass.Create;
 Add(m);
 m.DisposeOf;
end;

{ TUseClass }

procedure TUseClass.DoSomthing;
begin
 ShowMessage('TUseClass');
end;

//  这样就实现了预留未知功能的任务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值