Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Создание классов в Delphi

Автор: klem4 2.09.2006 15:53

Не могу понять что я делаю не верно.

unit Unit1;

interface

type

TMyClass = class(TObject)
private
public
constructor Create;
destructor Destroy;
end;

implementation

constructor TMyClass.Create;
begin
inherited Create; // ??
end;

destructor TMyClass.Destroy;
begin
end;

end.


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,
Unit1 in 'Unit1.pas';

var

MyClass : TMyClass;

begin
MyClass.Create;
MyClass.Destroy;
end.


Цитата
[Warning] Project1.dpr(14): Variable 'MyClass' might not have been initialized

Автор: volvo 2.09.2006 16:19

begin
MyClass := TMyClass.Create;
// ...
MyClass.Destroy;
end.


P.S.
А чего это ты на второе предупреждение не обратил внимания?
Цитата
[Warning] unit1.pas(11): Method 'Destroy' hides virtual method of base type 'TObject'

Автор: klem4 2.09.2006 16:24

Спасибо smile.gif

Автор: klem4 2.09.2006 17:31

Цитата(volvo @ 2.09.2006 13:19) *

P.S.
А чего это ты на второе предупреждение не обратил внимания?


На сколько я понял его надо перекывать ?

 destructor  Destroy; override;

Автор: volvo 2.09.2006 17:52

Цитата(klem4 @ 2.09.2006 13:31)
На сколько я понял его надо перекывать ?
yes2.gif Но ты же этого в начале не сделал...

Кстати, можно просто заглушить сообщение о том, что твой виртуальный метод скрывает виртуальный метод родителя... Для этого пользоваться не директивой Override, а ReIntroduce ...