11-08-2020, 11:32 AM
السلام عليكم ورحمة الله تعالى وبركاته
نعلم أن classe méthodes تكون إما virtual او static لكن لم افهم الفرق بينهم ومتى أستعمل كل وحدة.
قمت بإنشاء class على النحو التالي :
يوجد 3 حالات لتعريف method :
1- بدون ايي كلمة مفتاحية (لا static لا virtual)
2- [size=small]بإستخدام [/size]static
3- بإستخدام virtual
الكل يشتغلون بدون مشاكل عبر هذا الكود (لا يوجد فرق في النتيجة)
اين هو الفرق إذا ؟
نعلم أن classe méthodes تكون إما virtual او static لكن لم افهم الفرق بينهم ومتى أستعمل كل وحدة.
قمت بإنشاء class على النحو التالي :
كود :
unit uClassA;
interface
type
TClassA = class(TObject)
public
class function Add(pA,pB: integer): integer;
end;
implementation
{ TClassA }
class function TClassA.Add(pA, pB: integer): integer;
begin
Result:= (pA + pB);
end;
end.
يوجد 3 حالات لتعريف method :
1- بدون ايي كلمة مفتاحية (لا static لا virtual)
كود :
class function Add(pA,pB: integer): integer;
كود :
class function Add(pA,pB: integer): integer; static;
كود :
class function Add(pA,pB: integer): integer; virtual;
الكل يشتغلون بدون مشاكل عبر هذا الكود (لا يوجد فرق في النتيجة)
كود :
ShowMessage(TClassA.Add(10,20).toString);
اين هو الفرق إذا ؟