TA = class public constructor Create; end; TB =class(TA) public constructor Create(A: integer); overload; constructor Create(A: String); overload; end;我要求在创建TB的实例的时候,见不到不带参数的Create构造函数。说的够明白了吧
TA = class public constructor Create; end; TB =class(TA) public constructor Create(A: integer); overload; constructor Create(A: String); overload; end; 我要求在实作TB的时候,类使用者见不到无参数的Create构造函数,说的够明白了吧
然后这个CREATE自动调用Create(AA:integer),Create(AB:String)中的一个constructor TC1.Create;
begin
Create(0);
//Create('');
end;-----------
要不
constructor TC1.Create;
begin
raise Exception.Create('不允许调用该构造函数');
end;
“屏蔽父类的方法, 你不重新声明就行了”,子类没有单独声明无参数Create的方法,只声明了另外2个重载的Create构造函数,但是对于子类的使用者而言,依然能够看到从父类继承下来的那个无参数的构造函数,哪位指点12
public
constructor Create;
end; TB =class(TA)
public
constructor Create(A: integer); overload;
constructor Create(A: String); overload;
end;我要求在创建TB的实例的时候,见不到不带参数的Create构造函数。说的够明白了吧
public
constructor Create;
end; TB =class(TA)
public
constructor Create(A: integer); overload;
constructor Create(A: String); overload;
end;
我要求在实作TB的时候,类使用者见不到无参数的Create构造函数,说的够明白了吧
给参数了,那这样做还有什么用啊。
你把TA 的构造函数放到proected 下面不就行了, 当然不能在同一单元
To:DWGZ() 类TA需要创建实例而不是作为虚类,所以不能这么做问题还是没有解决,大家想想办法啊?Delphi的OO就这么弱啊
如果单用一个带参数的构造函数,可以不加overload,这样就能够hide父类的无参数构造函数
再自己添油加醋一番,就有了OP,
public
constructor Create;
end; TB =class(TA)
public
constructor Create(A: integer); overload;
constructor Create(A: String); overload;
end;
这样的声明在delphi中是无法通过的,因为TObject类的Create方法是静态的。
肯定会出现编译错误,但是我也不知道为什么TComponent能够从TPersistent继承,而且还可以constructor Create(AOwner: TComponent);virtual这样声明。关注。
你老用C那怎么转到D上来了, 是不是觉得VC太难了,BCB 又没市场, 你说这话你就不能在D 版呆了, 砖头, 口水会把你淹死, 不过我不会, 谁叫俺喜欢 C 呢
錯,TComponent中的Create是帶參數的VirtualDWGZ()--->我只是覺得奇怪!