процедура перегрузки delphi - PullRequest
7 голосов
/ 10 мая 2011

Я хочу перегрузить процедуру в классе. для этого я написал:

type 

  TMyClass = class(TObject)
  private...
  ...
  public 
   constructor create;
   destructor destroy;
   procedure dosomething(filename: string); overload;
   procedure dosomething(s: string; t: string; u: string); overload;


implementation

  procedure dosomething(filename:string);
  begin
  end;

  procedure dosomething(s: string; t: string; u: string);
  begin
  end;

но delphi сообщает мне об ошибке, связанной с прямым или внешним объявлением ...

почему это?

спасибо заранее!

Ответы [ 2 ]

11 голосов
/ 10 мая 2011

Вы должны добавить имя класса ...

implementation   

procedure TMyClass.dosomething(filename:string);    
begin    
end;

procedure TMyClass.dosomething(s: string; t: string; u: string);    
begin    

end;
2 голосов
/ 10 мая 2011

Возможно, это говорит о том, что вам не хватает реализации вашего конструктора и деструктора. Эта программа компилирует:

program Project1;

{$APPTYPE CONSOLE}

type TMyClass = class(TObject)
  public
    procedure doSomething(const Filename: string); overload;
    procedure doSomething(const s, t, u: string); overload;
end;

{$R *.res}

{ TMyClass }

procedure TMyClass.doSomething(const Filename: string);
begin

end;

procedure TMyClass.doSomething(const s, t, u: string);
begin

end;

begin
  writeln('blubb');
end.
...