一个Delphi下Abstract Error问题的处理
来源:互联网 发布:动迁三块砖算法 编辑:程序博客网 时间:2024/05/17 03:58
今天在修改一个公司项目的时候出现了Abstract Error问题,在网上查找之后发现为纯虚函数引起.
但是看了代码之后,发现该类的子类的同名函数也实现了.这是什么原因呢?
后来终于找了原因.
T1 = Class(TObject) //这个我们假设是基类
public
function f1();virtual;abstract;
T1s = Class(T1) //这个是我们用到的类的父类
public
function f1();override;
T1ss = Class(T1s) //这个是我们用到的类(开始的认为)
public
function f1();override;
这样一看一切都正常
但是这个工程用了动态类型的方法
即:O1 : T1;然后在动态找到类型后 O1 := T(动态找到的类型).create;接着O1.f1;
结果发现还有一个类:
T1a = Class(T1) //这个是我们用到的类的父类
public
function f2();virtual;abstract;
T1as = Class(T1a) //这个是我们用到的类
public
function f2();override;
其实O1是T1as。
这样我既不能直接用f1,也不能直接用f2。只能用以下方法处理。
在T1中添加f2,然后在将O1.f1改为:
if O1.classParent = T1a then
O1.f2
else
O1.f1;
问题解决。其实还是粗心造成的。不过也学到了不少东西。
- 一个Delphi下Abstract Error问题的处理
- 关于Delphi下子类调用父类虚函数的一个问题
- delphi 一个不了解原理的问题delphi 数据集下flag内容post后变没了
- VC调用Delphi写的dll的一个问题的处理
- Error listenerStart问题的处理
- Abstract Error 这是一个什么错
- Delphi POS函数中文处理的问题
- abstract error
- 关于abstract的一个例子
- 修正delphi编写的ocx控件中的DAX error问题
- Error loading WebappClassLoader问题的处理
- qt 一个问题的处理
- Delphi Clientdataset处理关联出来的视图的问题
- mysql error日志的一个问题
- 类的继承引起的一个错误:error C2259 cannot instantiate abstract class due to following members
- 类的继承引起的一个错误:error C2259 cannot instantiate abstract class due to following members
- fix DAX error(解决delphi编写的ocx控件中的DAX error问题)
- delphi编译时调试错行的问题现象,原因和处理
- C++资料
- JQuery让input从disabled变成enabled
- 今天是2011年7月18日
- struts2.0的标签库(简介)
- c语言中 int类型等
- 一个Delphi下Abstract Error问题的处理
- 关于在无限制条件下弹簧振子的运动轨迹
- VSS6.0的安装及使用以及在Myeclipse配置
- 关于有重根情况下微分方程根的一般形式
- Oracle 安装规划
- 使用DBCA创建数据库
- 调试Android 2.2的wm8976的驱动用于支持3G的心得
- 初始化参数概览
- mysql 操作功能