定义函数指针后,如何传递参数,参数要求是指针或变体类型,函数的返回值也要求是指针或变体类型,这样,可以定义一类函数,根据传递的参数不同,自动调用不同的函数,类似C++中的函数的重载,哪位做过,最后给我一个例子!谢谢了!也可以给我发信箱:[email protected]

解决方案 »

  1.   

    如果说类似C++的函数重载,则如下函数发生重载
    function AAA(A: Integer): Integer; overload;
    function AAA(A: Char): Integer; overload;
    function AAA(A: Integer; B: String): Integer; overload;如果说定义函数指针,如下为函数指针
    TFun = function (A: Integer; B: Integer): Integer;
    function CCC(A: Integer; B: Integer): Integer;
    begin
      Result := A + B;
    end;function DDD(A: Integer; B: Integer): Integer;
    begin
      Result := A - B;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      pF: TFun;
    begin
      pF := @CCC;
      pF(1, 2);
      pF := @DDD;
      pf(1, 1);
    end;没明白楼主真正的意思
      

  2.   

    如果在函数中要传递对象类型,你不必定义成指针类型的,这容易造成理解上的混乱,这与C++是不一样的。
    在delphi中,对象变量即是指针,把对象传递给函数并不会传递对象的数据,也不会引起构造函数的调用,仅把指向对象实例的指针传递给函数,这与C++也是不一样的。
    以下是一个以对象为参数,返回对象类型的函数指针:
    TObjectFun=Function(AEdit:TEdit):TLabel;