析构函数的问题
type TMyDate = Class(TObject)
private
Year,Month,Day :Integer;
public
constructor Create(Y, M, D:Integer); overload;
constructor Create(); overload;
destructor Destroy; override;
procedure SetDate(Y, M, D:Integer);
function ShowDate:string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyDate }
constructor TMyDate.Create(Y, M, D: Integer);
begin
end;
constructor TMyDate.Create;
begin
end;
destructor TMyDate.Destroy;
begin
Year := 0;
Month := 0;
Day := 0;
inherited;
end;
procedure TMyDate.SetDate(Y, M, D: Integer);
begin
Year := Y;
Month := M;
Day := D;
end;
function TMyDate.ShowDate: string;
begin
Result := IntToStr(Year) + '年' + IntToStr(Month) + '月' + IntToStr(Day) + '日';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyDate :TMyDate;
begin
MyDate.Create;
MyDate.SetDate(2007,9,5);
Label1.Caption := MyDate.ShowDate;
MyDate.Free;
end;
end.
这段代码有错误吗?为何执行到MyDate.Free;的时候会报读地址错误呢
[解决办法]
var
MyDate :TMyDate;
begin
MyDate := TMyDate.Create; /// 我晕
MyDate.SetDate(2007,9,5);
Label1.Caption := MyDate.ShowDate;
MyDate.Free;
[解决办法]
楼上所指正解,类未创建实例
[解决办法]
呵呵,对象未实例化
[解决办法]
类未创建实例