1、TStrings和TStringList的区别,为什么声明var s:TStrings;创建时却s:=TStringList.Create;2、TStringList=class;//这句什么意思,有什么意义?

解决方案 »

  1.   

    TStringList是从TStrings继承来的,
    TStringList包含所有的TStrings的方法
      

  2.   

    1  TStringList是从TStrings继承来的,因为TStrings是虚基类。所以不能用TStrings.Create()//出错
    TSrings t = TStringList.Create;这样就可以。派生类的对象可以实例化基类的指针。2 是一个声明 声明TStringList是一个类。
      

  3.   

    TStrings是个虚类,而TStringsList是从TStrings继承而来的,虚类不能直接创建他的实例。
      

  4.   

    TStrings是个虚类,TStringlist是TStrings的子类;
    var
     a: TStrings;
    begin
     a := TStrings.Create; //这样没错,但是如果你调用了a这个实例里面的抽象方法,就会出错,这是因为虚拟表的问题.一般不意见直接创建它的实例,而是使用TStringlist;