2013-07-31 26 views
6

là nó có thể (trong Delphi) để khai thác quá tải trong các lớp học. Tôi đã đọc một số thời gian trước đây người ta có thể chỉ cho hồ sơ nhưng tôi tìm thấy thông tin đó cho các lớp học quá như trong mã dưới đây:Quá tải nhà khai thác tại Delphi

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


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

Nó được (sửa đổi) từ địa chỉ: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/operatoroverloads_xml.html

Nhưng khi tôi cố gắng sử dụng nó (bên Delphi XE) tôi nhận được:

THỦ TỤC, CHỨC NĂNG, THUỘC TÍNH hoặc VAR dự kiến ​​(E2123)

Tôi muốn tạo ra lớp đơn giản của riêng tôi cho thao tác ma trận và khả năng sử dụng các opener quá tải bên trong lớp là cơ hội rất mong đợi.

Regars, Artik

Trả lời

10

điều hành quá tải cho các lớp có sẵn trong một số phiên bản của trình biên dịch. Nó có sẵn cho các trình biên dịch .net và iOS. Đối với Windows và Mac không được hỗ trợ.

Trình biên dịch iOS có thể hỗ trợ điều này bởi vì nó quản lý thời gian tồn tại của các phiên bản lớp bằng cách sử dụng ARC. Nếu các trình biên dịch máy tính để bàn chuyển sang ARC thì bạn có thể mong đợi sự hỗ trợ cho quá tải của toán tử.

Marco đã viết blog về điều này: http://blog.marcocantu.com/blog/class_operators_delphi.html

+0

Cảm ơn bạn đã trả lời – Artik

Các vấn đề liên quan