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

📄 testautoptrlist.dpr

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

{$APPTYPE CONSOLE}

uses
	SysUtils,
    Generics.Collections,
	AutoPtr in 'AutoPtr.pas';

type
	TTestClass = class
    private
    	fInt: Integer;
    public
    	constructor Create(aInt: Integer); virtual;
        destructor Destroy; override;
        procedure DoPrintInt;
    end;

var
	gList: TList<IAutoPtr<TTestClass>>;
    gAp: IAutoPtr<TTestClass>;

{ TTestClass }

constructor TTestClass.Create(aInt: Integer);
begin
	fInt := aInt;
	Writeln('Create');
end;

destructor TTestClass.Destroy;
begin
    Writeln('Destroy');

	inherited;
end;

procedure TTestClass.DoPrintInt;
begin
	Writeln(fInt);
end;

procedure DoTestAutoPtr;
var
	ap: IAutoPtr<TTestClass>;
    n: Integer;
begin
    gList := TList<IAutoPtr<TTestClass>>.Create;
	for n := 0 to 2 do
    begin
		ap := TAutoPtr<TTestClass>.New(TTestClass.Create(10));
    	ap.Get.DoPrintInt;

    	gList.Add(ap);
        ap := nil;
    end;

    Writeln('Save an AutoPtr');
    gAp := gList[1];

    Writeln('gList Destroy');
    gList.Free;

    Writeln('Set saved AutoPtr = nil');
    gAp := nil;
end;

begin
    DoTestAutoPtr;

	Readln;
end.

⌨️ 快捷键说明

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