SAFileOpr.TStandardFileOpr.Create 有一个子类的对象。这样创建的。
有一个函数function BaoDoSaveFile(FCalled:Boolean;Fobject:^TObject): Boolean; 这样定义的。
想在想把上面的对象传给函数。
请教这个函数定义是否正确。为什么会报^找不到。
有一个函数function BaoDoSaveFile(FCalled:Boolean;Fobject:^TObject): Boolean; 这样定义的。
想在想把上面的对象传给函数。
请教这个函数定义是否正确。为什么会报^找不到。
var
a : ^TObject;
b : ^TObject;
begin
a := b;
...delphi会认为a和b的类型不同,可能是在处理的时候,为a、b生成了临时的类型,但在类型的符号表中不检查是否已经声明过相同的类型,所以认为a和b的类型不同。这也就意味着,在函数的声明与实现中,如果实现的部分也写了完整的声明(虽然实际上实现的部分可以不写),编译器会认为两者不一致。
所以为了避免这种情况的发生,delphi的编译器对参数中的声明做了特殊规定多说一句,对于这个声明来说,最好用 var/out FObject:TObject 的方式传递参数,而不是采用指针的方式
应该这样定义,对象类型本身就是指针。