★TStrings和TStringList有何相同和不同之处?

解决方案 »

  1.   

    TStrings相当于C++的抽象类,也就是说它是一个纯虚类,它只定义而没有实现它的类成员函数。
    而TStringList是它的一个子类,它实现了在TStrings中定义了但没有实现的函数。
    正因为TStrings没有实现它的所有成员函,所以它也就没有实现它的构造函数(create),所以....注:准确的说,不管有无实现一个类的构造函数,系统它会为它实现一个缺省的动作,但抽象类通过
    (c++中)纯虚函数的指定方法(函数定义+‘=0')来阻止这种系统指派  TStrings和TStringList最大的区别在于
    AddXXX方法(AddObjects())TStrings中是抽象的,只能用于继承,
    TStringList中是可以用的,像TreeView中的数据就是用了TStringList.AddStrings('',Object)
      

  2.   

    你把TStrings看成是水果,一个总称.
    TStringList看成是香蕉,一个实物.
    自然就知道它们的区别了
      

  3.   

    你把TStrings看成是水果,一个总称.
    TStringList看成是香蕉,一个实物.
    自然就知道它们的区别了
    想法思路好!
      

  4.   

    我怎么看到有个视频教学中老师在例子中使用了TStrings的类成员函数用来在一个TStrings类型的变量中添加字符串??难道是她写错了???
      

  5.   

    我总是这样写:
    var
      strs: TStrings;
    begin
      strs := TStringList.Create;
      strs.Add('test');
      strs.Free;
    end;
    实际上strs是一个TStringList对象,难道是你看错了?
      

  6.   

    to: zzlingaaa(小舟)
    等我回去看看哦!
      

  7.   

    前者是所谓的“抽象类”就是C++的“纯虚类”,只能被Override,不能直接Create Instance的http://lysoft.7u7.net