我想继承TStringList,该怎么写?这是我的代码:
type
    MetricsList = class(TStringList)
    private    public
        constructor create(Owner: TStringList);
        destructor Destroy; override;
    end;implementation{ MetricsList }constructor MetricsList.create(Owner: TStringList);
beginend;destructor MetricsList.Destroy;
begin    inherited;
end;我想初始化一个有内容的列表,比如
add('a');
add('b');
add('c');就是不知该如何写?我知道C和python的怎么写,delphi的不太了解

解决方案 »

  1.   

    TStringList从TStrings这个类继承下来,它的基类 TObject 的构造器是静态的,所以不可覆盖
    初始列表可以在创建的时候手动写代码添加嘛...
      

  2.   


    type
        MetricsList = class(TStringList)
        private    public
            constructor create(Owner: TStringList);
        end;implementation{ MetricsList }constructor MetricsList.create(Owner: TStringList);
    begin
      Add('a');
      Add('b');
      Add('c');
    end;
      

  3.   

    的确.没必要
    直接用TStringList就够了,而且把Item写死了也不是很好吧
      

  4.   

    我建议把要初始化的写在构造函数的参数里面,创建的时候直接传入就可以了如aMetricsList := MetricsList.Create(aStringList,'a','b','c');
    constructor create(Owner: TStringList; const a,b,c:String);constructor MetricsList.create(Owner: TStringList; const a,b,c:String);
    begin
      Add(a);
      Add(b);
      Add(c);
    end;
      

  5.   

    type
        MetricsList = class(TStringList)
        private    public
            constructor create(Owner: TStringList);
            destructor Destroy; override;
        end;implementation{ MetricsList }constructor MetricsList.create(Owner: TStringList);
    begin
      inherited Create;
      Add('a');
      Add('b');
      Add('c');
    end;destructor MetricsList.Destroy;
    begin    inherited;
    end;
      

  6.   

    继承的话,构造函数别忘了加
    inheritd Greate;
      

  7.   

    type
        MetricsList = class(TStringList)
        private    public
            constructor create(Owner: TStringList);
        end;implementation{ MetricsList }constructor MetricsList.create(Owner: TStringList);
    begin
      inherited Created(Owner);
      Add('A');
      Add('B');
      Add('C');
    end;
      

  8.   

    constructor最后面最好加个reintroduce,因为这个不是override