如何在类重载的时候隐藏继承的TObject构造函数? [英] How to hide the inherited TObject constructor while the class has overloaded ones?
本文介绍了如何在类重载的时候隐藏继承的TObject构造函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
看看这个类:
TTest = class(TObject)
public
constructor Create(A:Integer);overload;
constructor Create(A,B:Integer);overload;
end;
现在我们要使用类:
var
test: TTest;
begin
test:= TTest.Create; //this constructor is still visible and usable!
end;
任何人都可以帮助我隐藏这个构造函数?
Can anyone help me with hiding this constructor?
推荐答案
只要有重载的构造函数名为 Create
,则无法隐藏无参数 TObject
构造函数从
TObject
中导出。
So long as you have overloaded constructors named Create
, you cannot hide the parameterless TObject
constructor when deriving from TObject
.
这里讨论: http://www.yanniel.info/2011/08/hide-tobject- create-constructor-delphi.html
如果您准备在类和 TObject之间放置另一个类c>您可以使用 Andy Hausladen的技巧:
TNoParameterlessContructorObject = class(TObject)
strict private
constructor Create;
end;
TTest = class(TNoParameterlessContructorObject)
public
constructor Create(A:Integer);overload;
constructor Create(A,B:Integer);overload;
end;
这篇关于如何在类重载的时候隐藏继承的TObject构造函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文