加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Abstract Error错误

(2012-09-05 18:09:47)
标签:

abstracterror错误

delphi

it

分类: Delphi

  今天碰到一个问题,Abstract Error错误,查了挺久的。原因如下:

   调用了纯虚函数,而且这个继承类没有完成这个纯虚函数,才导致这个错误。

var
  s: TStrings;
begin
  s := TStrings.Create;
  s.Add('1');
  s.Add('2');
  ShowMessage(s.Text);
end;
{以上程序编译可以通过,运行时就出现Abstract Error错误,把s声明为TStringList就可以,所以你要找错误的原因,可以把这两种类调出来比较一下

 

 

在你的代码里面调用了纯虚拟函数。要重载。

type 
    TAA   =   class 
    protected 
        procedure   aa1;   virtual;   abstract;   //这是纯虚拟函数 
    public   
        procedure   aa2;   virtual;   abstract;   //这也是纯虚拟函数 
    end; 
  
    TBB   =   class(TAA) 
    protected 
        procedure   aa1;   override;   //实现纯虚拟函数 
    public 
        procedure   aa2;   override;   //实现纯虚拟函数 
    end; 

 


impl... 
procedure   TBB.aa1; 
begin 
end; 


procedure   TBB.aa2; 
begin 
end; 

 

 

/////////////////

type 
    TAA   =   class 
    protected 
        procedure   aa1;   virtual;   abstract;   //这是纯虚拟函数 
    public   
        procedure   aa2;   virtual;   abstract;   //这也是纯虚拟函数,   
                    //在TAA中不实现该方法只声明   该方法的接口参数;留给子类去实现。 
        procedure   aa3;   virtual;   //这是虚拟函数,在中必须实现该方法 
    end; 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有