⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classicalautoptr.pas

📁 在Delphi2009中实现类似于STL中auto_ptr的智能指针!关于此智能指针的原理及解释请进入以下网址: http://www.cnblogs.com/felixYeou/archive/2
💻 PAS
字号:
unit ClassicalAutoPtr;

interface

uses
	SysUtils;

type
	TClassicalAutoPtr = class(TInterfacedObject)
    private
    	fObj: TObject;
    public
    	constructor Create(aObj: TObject); virtual;
        destructor Destroy; override;
        class function New(aObj: TObject): IInterface;
    end;

implementation

{ TClassicalAutoPtr }

constructor TClassicalAutoPtr.Create(aObj: TObject);
begin
	fObj := aObj;
end;

destructor TClassicalAutoPtr.Destroy;
begin
	// 智能指针在方法退出时销毁,同时销毁所管理的堆对象
    FreeAndNil(fObj);
	inherited;
end;

class function TClassicalAutoPtr.New(aObj: TObject): IInterface;
begin
	// 外部必须使用此方法创建智能指针
    // 因为此方法会暴露给外部一个接口
    // 后台碰到接口后会自动调用接口的析构函数
	Result := TClassicalAutoPtr.Create(aObj);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -