有关虚拟,抽象方法的问题(50分)

  • 主题发起人 主题发起人 afey
  • 开始时间 开始时间
A

afey

Unregistered / Unconfirmed
GUEST, unregistred user!
TDesigner=class(TActiveForm,IDesigner);
TmyDesigner=class(TDesigner)
public
procedure BeforeChange;virtual;abstract;
end;
TReport=classs(TmyDesigner,IReport)
public
procedure BeforeChange:override;
end;
implemention
BeforeChange函数的实现

然后创建一个TmyDesigner的一个对象myDesigner,然后调用myDesigner.BeforeChange;当程序运行到这个函数时,总会出错说'Abstract Error',到底是什么错误啊??
 
没有 create

应该先 myDesigner:=TmyDesigner.create
 
TStrings用过了吧,Insert是虚拟的抽象方法,我想你也很清楚它是怎么用的.
var
strs:Tstrings;
begin
strs:=TstringList.create();
strs.free;
end;
 
我知道了,我前面给出的例子是对的,只是我在实际中用的时候犯了一个低级错误,就是在实例化对象时是用父类创建的,所以在调用只在子类中定义的纯虚抽象函数时出错了,会提示'Abstract Error'。
 
后退
顶部