一个弱智语法问题(50分)

  • 主题发起人 主题发起人 AYellow
  • 开始时间 开始时间
A

AYellow

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下

文件Settings

Type
TSetting=class
private
FilePathName:string;
Public
function GetFilePathName:string;
end;

implementation

{ Setting }

function TSetting.GetFilePathName: string;
begin
result:=FilePathName
//在此出错
end;

文件Unit1

var
MainForm: TMainForm;
Setting:TSetting;

implementation

{$R *.DFM}

Unit1中一调用Setting.GetFilePathName就出错,说是读了不能读的地址,怎么回事?
FilePathName为何不能读?
 
驱动器ready?
 
更驱动器有什么关系?
 
老大,你没有 Create :
Setting := TSetting.Create
就好了。
 
你的Setting初始化了吗?
在调用前先执行这一句 Setting:=TSetting.Create;
 
我直接用TSetting.Create;
这和Setting:=TSetting.Create
有什么区别?

 
有区别阿
Setting:=TSetting.Create;创建后将指针传给setting
setting就被初始化了

 
TSetting.Create
虽然也创建了实例,但是却没有保存实例的引用,就像猴子掰玉米,
创建一个就丢一个。
Setting:=TSetting.Create
这样就把创建的实例的引用保存到了 Setting 中,因为
你后来需要这个引用来调用 TSetting 的方法。

ps: 你对类和类实例的概念理解吗?
 
多人接受答案了。
 
后退
顶部