delphi 面向对象的抽象方法的作用;如果不定义抽象方法会怎样呢?
还请说下 class of .. 类的类 的用法希望可以举个小列说明 谢谢大侠
解决方案 »
- innosetup安装时怎么设置分类安装?服务器和客户端
- 判断图片的是否移出范围
- 在界面上的paintbox1上是否可以动态的写几个字上去?
- 请问dxbar在哪一个控件包中啊,并在哪里下载啊???谢谢!
- 如果我在数据库里的一个field里面放的是0,1,2,3四种数字,而我要在dbgrid里面对应显示的是的市内,省内,省外,国外四种,怎么办
- 窗体里面有多个各种各样的组件,而且都是隐藏的。怎么把其中Name为MyEdit组件显示出来?
- SOS---一个刚用DELPHI做课程设计得大三学生得紧急求救!谁能救小妹一命,感激万分!
- 谁有 PsFRExportFilters 控件的最新注册版?万分感谢!!!
- 关于播放器的全屏问题
- TMS advstringgrid导出EXCEL
- Delphi TADOQuery带参数查询出错
- 关于 Delphi 的指针
而子类TStringList覆盖了GetCount,其他用到了GetCount的方法都会调子类的GetCount。
如果TStrings类没有GetCount,那么凡是用到了GetCount的方法都要被子类所覆盖!!!另一方面,抽象方法也在父类级别为所有子类提供了对外的“接口”。
比如TStrings类的Insert,如下代码:
var
s: TStrings;
begin
s := TStringList.Create;
s.Insert(0, 'abc');//如果TStrings没有Insert,这里是连编译都通不过的!!!
s.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
type
TStringListClass = class of TStringList;
var
c: TStringListClass;
o: TStringList;
begin
c := TStringList;
o := c.Create;
o.Add('abc');
o.Free;
end;
还是没弄明白 calss of....类型的原理;为什么要定义class of 类型呢
直接定义数据类型就好了啊
To see how class-reference types are used, look at the declaration of the constructor for TCollection (in the Classes unit):
为了了解类引用类型是如何使用的,看看TCollection的构造器的声明(在Classes单元):
type TCollectionItemClass = class of TCollectionItem;
...
constructor Create(ItemClass: TCollectionItemClass);This declaration says that to create a TCollection instance object, you must pass to the constructor the name of a class descending from TCollectionItem.
这个声明是说要想创建一个TCollection的实例对象,你必须把派生于TCollectionItem的一个类的名字传递给那个构造器。
Class-reference types are useful when you want to invoke a class method or virtual constructor on a class or object whose actual type is unknown at compile time.
类引用类型是有用的,当你想调用一个“类方法”或当你想调用在编译时期实际类型未知的一个类或对象的虚构造器的时候。
谢谢 s11ss (skull)
类的类 class of...运行期确定数据类型 那和 RTTI(运行期数据类型信息) 有关联么呢?
还有可以说下 class function 类方法的原理吗?谢谢大家
http://topic.csdn.net/u/20120315/16/08b57a70-49e1-44a7-80db-109da44972a2.html