Delphi 在类运算符的上下文中,继承意味着什么
如果我在Delphi 在类运算符的上下文中,继承意味着什么,delphi,operator-overloading,delphi-xe2,Delphi,Operator Overloading,Delphi Xe2,如果我在界面中键入我的记录定义,然后按ctrl+alt+C,Delphi将填写以下存根 class operator P<T>.GreaterThan(a, b: P<T>): Boolean; begin inherited; <<-- ??? end; 实施: class operator P<T>.Implicit(a: pointer): P<T>; begin <<--- no
界面中键入我的记录定义,然后按ctrl+alt+C,Delphi将填写以下存根
class operator P<T>.GreaterThan(a, b: P<T>): Boolean;
begin
inherited; <<-- ???
end;
实施:
class operator P<T>.Implicit(a: pointer): P<T>;
begin <<--- nothing
end;
class operator P<T>.Implicit(a: P<T>): pointer;
begin
inherited; <<-- now you see it...
end;
class operator P<T>.Implicit(Cell: TCell<T>): P<T>;
begin <<-- now you don't
end;
class operator P<T>.Implicit(P: P<T>): TCell<T>;
begin
end;
类操作符P.Implicit(a:指针):P;
begin在这个上下文中,继承的
没有任何意义,因为记录不能被继承。编译器忽略它,不输出任何代码。代码完成似乎变得混乱起来。在这种情况下,继承的
没有任何意义,因为记录无法继承。编译器忽略它,不输出任何代码。看起来代码完成越来越混乱。好吧,我认为这与同一类运算符的多个重载版本有关。好吧,我认为这与同一类运算符的多个重载版本有关。
class operator P<T>.Implicit(a: pointer): P<T>;
begin <<--- nothing
end;
class operator P<T>.Implicit(a: P<T>): pointer;
begin
inherited; <<-- now you see it...
end;
class operator P<T>.Implicit(Cell: TCell<T>): P<T>;
begin <<-- now you don't
end;
class operator P<T>.Implicit(P: P<T>): TCell<T>;
begin
end;