//类定义
TClassA = class(TForm)
public
function basic_fun() : boolean;
end;
PointerClassA = ^TClassA;
TClassB = class(TClassA)
public
function basic_fun() : boolean;
end;
PointerClassB = ^TClassB;
//参数是PointerClassA
function fun(pA : PointerClassA) : boolean;
begin
//这里我希望的是调用TClassB的basic_fun,不是TClassA的basic_fun
//怎么才可以实现呢?
pA^.basic_fun();
result := true;
end;
//这是主要程序
function main() : boolean;
var
b : TClassB;
begin
b := TClassB.create;
//传入的参数是TClassB的指针,不是PointerClassA。但是在fun函数里仍然运行的是TClassA的basic_fun
fun(@b);
end;