gpt4 book ai didi

delphi - 如果显式调用 Create,我可以使编译器失败吗?

转载 作者:行者123 更新时间:2023-12-03 19:40:13 26 4
gpt4 key购买 nike

我有很多单例,我不希望开发人员调用构造函数 创建 .相反,他们应该使用函数 实例

TdgpBankBranch = class(TDataGroup)
strict private
class var InstanceVar : TdgpBankBranch;
private
{ Only for internal use }
constructor Create (AOwner : TComponent); reintroduce;
protected
public
class function Instance : TdgpBankBranch;
class function Is_A_Live_Singleton: boolean;
property Rec[Bank, Branch : integer]: TBankBranch read GetRec; default;
end;

我一直在将构造函数转移到 私有(private) .这使得代码分析器提示 《非公构造函数》 .

我可以将它们移回 公众 .如果尝试使用 ,有没有办法使编译器失败?构造函数 ?

最佳答案

将构造函数移至 private会阻止其他单位调用Create()直接,但是由于单元内隐含的友谊,与类在同一单元内的代码仍然可以不受阻碍地调用它。如果你不想调用类之外的任何代码 Create()直接,即使在同一单元中,然后将其声明为strict private所以只有类本身可以直接调用它。

关于delphi - 如果显式调用 Create,我可以使编译器失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com