加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何在类重载的时候隐藏继承的TObject构造函数?

发布时间:2020-12-15 06:09:54 所属栏目:大数据 来源:网络整理
导读:看看这个课程: 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 usab
看看这个课程:
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;

任何人都可以帮我隐藏这个构造函数?

解决方法

只要你有重载的名为Create的构造函数,在从TObject派生时,不能隐藏无参数的TObject构造函数.

这在这里讨论:http://www.yanniel.info/2011/08/hide-tobject-create-constructor-delphi.html

如果你准备在你的类和TObject之间放置另一个类,你可以使用Andy Hausladen’s trick:

TNoParameterlessContructorObject = class(TObject)
strict private
  constructor Create;
end;

TTest = class(TNoParameterlessContructorObject)
public
  constructor Create(A:Integer);overload;  
  constructor Create(A,B:Integer);overload;  
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读