بسم الله الرحمن الرحيم
أولا السلام عليكم ورحمة الله وبركاته... لقد كنت معكم في شرح الدوال وكثير ما كنت أطيل ولكن اليوم لن أطيل سأختصر قدر المستطاع...تعلمنا كيفية التمرير بالمؤشرات واليوم ندرس التمرير بالإشارات ( reference ) وهي أحد الأسماء المستعارة أي عند إنشائك لأي كائن وإسناده إلى إشارة فكل ما تقوم به من عمل على الاشاره هو في الحقيقة على الكائن نفسه...
*كيف نعرف الإشارة: نذكر النوع متبوعا بالعلامة & ثم اسم الإشارة ثم نهيأ ها بالكائن.
مثال:
int a; int &renumber=a;
وللمعلومية فأن عنوان كل من الكائن والاشاره هو نفسه...عند طباعته...
والإشارات موضوع كبير توضع له فصول خاصة في الكتب.ما يهمنا هو عرفنا كيف نعرفها وألان ماذا عن كيف نستخدمها مع الدوال؟
*تمرير الإشارات للدوال: لا يختلف كثير عن طريقة تمرير المؤشر و لكن عند الاستدعاء نضع أسماء الكائنات بدون & كما في المؤشرات وإليك الأمثلة:
#include
//مربع رقم
inline float Squr(float &a)
{
return a*a;
}
//مكعب رقم
inline float Cub(float &a)
{
return a*a*a;
}
float main ()
{
float x;
float &rfer=x;
cout << "please enter number";
cin >> x;
cout << x <<"^2" << "=" << Squr(x) <<"n";
cout << x <<"^3" << "=" << Cub(x) <<"n";
return 0;
}هذا البرنامج كما تشاهد بسيط الغرض منه توصيل المعلومة.استخدمنا برنامج يحتوي على دالتين ويعود بمربع رقم ومكعب رقم واستخدمنا التمرير بالإشارة، كما تلاحظ لم نحتج إلى وضع علامة & في الدالة التي نستدعيها كما هو الحال في المؤشرات....
ومثال آخر هو جدول الضرب:
#include
//برنامج يوجد جدول الضرب باستخدام التمرير بالإشارة
int multiplic(int &i, int &j)
{
return i * j;
}
int main ()
{
int i,j;
int π=i;
int &pj=j;
for(i=1;i<=12;i++)
{
for(j=1;j<=12;j++)
{
cout < }
cout <<"n";
}
cout <<"n";
return 0;
}كما تلاحظ أخي الكريم وأختي الكريمة استخدمنا دالة لإيجاد جدول الضرب وفكرة جدول الضرب تعتمد على حلقتي تكرار و في جسم الدالة يتم ضرب القيمتين والعودة بهما كما تلاحظ أيضاً أن التمرير بالإشارة نضع علامة & في الإعلان عن الدالة وجسم الدالة.أما الاستدعاء فلا يحتاج ذلك... علمن أن الدوال في البرنامجين مدرجة أي جسم الدالة هو نفسه تعريفها...
لا أحب أن أطيل فإلى لقاء آخر بأذن الله...والله ولي التوفيق مع تحيات خالد...