سلام
من چند تا سایت رو در این مورد جستجو کردم، کد هم گذاشته بودن اما کار نمی کنه می خواستم بدونم این کار توی Delphi 7 اصلا امکان پذیر هست یا نه و اینکه اصلا Delphi 7 یه زبان آبجکتی هست یا نه؟؟؟؟
Printable View
سلام
من چند تا سایت رو در این مورد جستجو کردم، کد هم گذاشته بودن اما کار نمی کنه می خواستم بدونم این کار توی Delphi 7 اصلا امکان پذیر هست یا نه و اینکه اصلا Delphi 7 یه زبان آبجکتی هست یا نه؟؟؟؟
سلام
يه نگاه :
کد:http://dn.codegear.com/article/34324
کد:http://delphi.wikia.com/wiki/Enhancements_since_Delphi_7
کد:http://blogs.codegear.com/nickhodges/2006/11/27/29891
کد:http://en.wikipedia.org/wiki/Operator_overloading
کد:http://www.derangedcoder.net/programming/delphidotnet/operatorOverloadingInDelphiDotNet.html
کد:http://www.aspfree.com/c/a/.NET/The-Delphi-Language-Part-2/10/
کد:http://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/devcommon/operatoroverloads_xml.html
سلام. مطمئنا این امکان رو داره. ساده ترین مثالش هم عملگر + هست. هم برای اعداد و هم برای رشته هانقل قول:
Delphi 7 یک زبان شی گرا Hybrid هست، یعنی در حالی که از تمامی مفاهیم پایه ایی مربوط به شی گرایی پشتیبانی میکنه، امکان Structural Programming را هم برای کسانی که نمیخوان با OOP درگیر بشند، فراهم میکنه. از این نظر شبیه ++C هست.
اما Operator Overloading جزو ویژگی های شی گرایی یک زبان محسوب نمیشه. دلفی دات نت کاملا از Operator Overloading پشتیبانی میکنه، ولی دلفی 2007 و 2009 برای Win32 فقط از Operator Overloading در Recordها پشتیبانی میکنند، نه در کلاس ها.
Syntax اش هم بصورت زیر هست:
کد:type
TMyClass = class
class operator Add(a, b: TMyClass): TMyClass;
class operator Subtract(a, b: TMyClass): TMyclass;
class operator Implicit(a: Integer): TMyClass;
class operator Implicit(a: TMyClass): Integer;
class operator Explicit(a: Double): TMyClass;
end;
implementation
class operator TMyClass.Add(a, b: TMyClass): TMyClass;
begin
//implementation code
end;
class operator TMyClass.Subtract(a, b: TMyClass): TMyclass;
begin
//implementation code
end;
class operator TMyClass.Implicit(a: Integer): TMyClass;
begin
//implementation code
end;
class operator TMyClass.Implicit(a: TMyClass): Integer;
begin
//implementation code
end;
class operator TMyClass.Explicit(a: Double): TMyClass;
begin
//implementation code
end;
امكان Operator Overloading در دلفی 7 وجود نداره،
تا جائيكه ميدونم اين امكان از نسخه 2006 به بعد وجود داره.