2013-07-31 12 views
6

jest to możliwe (w Delphi) do przeciążania operatorów w klasach. czytałem jakiś czas temu, że jest to możliwe tylko dla rekordów, ale znalazłem informację, że na zajęcia zbyt jak w kodzie poniżej:Przeciążenie operatora w Delphi

type 
    TMyClass = class 
    class operator Implicit(a: Integer): TMyClass; 
    end; 


class operator TMyClass.Implicit(a: Integer): TMyClass; 
begin 
    // ... 
end; 

Jest (zmodyfikowany) z adresem: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/operatoroverloads_xml.html

ale kiedy staram się go używać (wewnątrz Delphi XE) uzyskać:

PROCEDURA, funkcja, własności lub VAR oczekiwano (E2123)

Chcę stworzyć własną, prostą klasę do manipulowania matrycą, a możliwość użycia przeciążających opearatorów w klasie jest bardzo spodziewaną szansą.

Regars, ARTIK

Odpowiedz

10

Operator przeciążenie dla klas jest dostępna w niektórych wersjach kompilatora. Jest dostępny dla kompilatorów .net i iOS. W systemach Windows i Mac nie jest obsługiwany.

Kompilator iOS obsługuje tę funkcję, ponieważ zarządza czasem istnienia instancji klasy za pomocą ARC. Jeśli kompilatory desktopowe kiedykolwiek przełączą się na ARC, możesz oczekiwać wsparcia dla przeciążenia operatora.

Marco napisał na blogu: http://blog.marcocantu.com/blog/class_operators_delphi.html

+0

Dziękuję za odpowiedź – Artik

Powiązane problemy