折腾了一晚上,还是问一下高手吧:Delphi中构造函数的多态如何实现啊?也就是下面这段C++代码在Delphi中该如何写?public class MyClassA //这个类是一个窗体类
{
public MyClassA(){}
public MyClassA(int iCount){//other codes}
}我在程序中两个构造函数在不同地方都要用到我Overload了一个构造函数,通过构造函数传递一些参数;但是在程序的另外一个地方需要一个不传递函数的构造函数去实例化一个类,不知道这个怎么弄啊?
我在Delphi里这样写好像不行:
Type
MyClass=class(TClass)
constructor Create;overload; //这里是不是已经把默认的构造函数或者其他什么东西给覆盖了????
constructor Create(i:integer);overload; //传递参数在实现代码段:
constructor MyClass.Create
begin
inherited Create; //我以为这样就可以继承父类的构造函数,给我create一个窗体出来,结果报错
end; //说我这个Create函数hide了基类的虚方法 constructor MyClass.Create(i:integer)
begin
//my codes
end;问了很多人,找了很多资料了,感觉在Delphi中对构造函数关注得不多,CSDN也就搜出两个帖子,大家帮个忙,我是新手!问题解决立马结帖!
{
public MyClassA(){}
public MyClassA(int iCount){//other codes}
}我在程序中两个构造函数在不同地方都要用到我Overload了一个构造函数,通过构造函数传递一些参数;但是在程序的另外一个地方需要一个不传递函数的构造函数去实例化一个类,不知道这个怎么弄啊?
我在Delphi里这样写好像不行:
Type
MyClass=class(TClass)
constructor Create;overload; //这里是不是已经把默认的构造函数或者其他什么东西给覆盖了????
constructor Create(i:integer);overload; //传递参数在实现代码段:
constructor MyClass.Create
begin
inherited Create; //我以为这样就可以继承父类的构造函数,给我create一个窗体出来,结果报错
end; //说我这个Create函数hide了基类的虚方法 constructor MyClass.Create(i:integer)
begin
//my codes
end;问了很多人,找了很多资料了,感觉在Delphi中对构造函数关注得不多,CSDN也就搜出两个帖子,大家帮个忙,我是新手!问题解决立马结帖!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; TMyForm1 = class(TForm1) public
constructor Create; overload;
constructor Create(I: Integer); overload;
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyForm1 }constructor TMyForm1.Create;
begin
inherited Create(nil);end;constructor TMyForm1.Create(I: Integer);
begin
inherited Create(nil);end;procedure TForm1.Button1Click(Sender: TObject);
var
A: TMyForm1;
begin
A := TMyForm1.Create(1);
A.Show;
end;end.
你能告诉我两个答案吗?
1:nil在这里起什么作用?
2:为什么在Create之后还要show才能弹出窗体,之前我是没有用show这个方法就可以出来窗体
谢谢!