26.04.2015 Views

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>البرمجة</strong> <strong>الغرضية</strong> <strong>التوجه</strong> <strong>في</strong> دل<strong>في</strong><br />

عروة عيسى<br />

الوراثة والتوافق بين الأنماط<br />

:<br />

الباسكال لغة نموذجية ومثالية بشكل صارم<br />

،<br />

العكس بدون إجراء تحويل بدوال التحويل المناسبة التي تزودك دل<strong>في</strong> ا<br />

،<br />

وهذا يعني أنك لن تستطيع مثلا أن تنسب قيمة رقمية إلى قيمة نصية أو<br />

وللتبسيط فإن دل<strong>في</strong> تسمح لك <strong>في</strong> بعض الأحيان نسب نمطين مختل<strong>في</strong>ن ، <strong>في</strong> حال كان أحدهما يستوعب الآخر<br />

لاحظ أننا نستطيع نسب متحول Integer إلى متحول<br />

،<br />

Real بدون أخطاء ،،<br />

وبالطبع الحالة المعاكسة غير صحيحة<br />

مثلا<br />

.<br />

var i:integer;<br />

r:real;<br />

begin<br />

r:=i;<br />

i:=r;<br />

// ok<br />

//error!!!<br />

وهذا الإستثناء مهم <strong>في</strong> حالة أنماط الأصناف<br />

صنف ولنقل مثلا<br />

لإن الكلب حيوان<br />

End;<br />

،<br />

، Tdog<br />

فإذا قمت مثلا بتعريف صنف جديد مثل Tanimal وأشتقيت منه<br />

تستطيع عندها أن تنسب غرض من الصنف Tdog إلى متحول من الصنف<br />

، Tanimal<br />

،<br />

ولكن ليس بالضرورة أن يكون كل حيوان كلب<br />

،<br />

وبناء على ذلك العكس غير ممكن<br />

:<br />

var<br />

MyAnimal: Tanimal;<br />

MyDog: Tdog;<br />

begin<br />

MyAnimal := MyDog; // OK<br />

MyDog := MyAnimal; // error!!!<br />

٣٥

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!