如何在类重载的时候隐藏继承的TObject构造函数? [英] How to hide the inherited TObject constructor while the class has overloaded ones?

查看:157
本文介绍了如何在类重载的时候隐藏继承的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆