مقدمة
في الدرس السابق تعرفنا على معاملات الدوال (Parameters) والقيم المرسلة (Arguments)، وعرفنا كيف تستقبل الدالة البيانات لتنفيذ مهمة معينة.
لكن بعد انتهاء الدالة من تنفيذ مهمتها، قد يحتاج البرنامج إلى الاستفادة من النتيجة التي توصلت إليها.
ولهذا توفر C++ مفهومًا مهمًا يسمى القيم المرجعة (Return Values).
تعد القيم المرجعة من أهم المفاهيم في البرمجة، لأنها تسمح للدوال بإرسال نتائجها إلى بقية أجزاء البرنامج.
---
ما هي القيمة المرجعة؟
القيمة المرجعة هي النتيجة التي تعيدها الدالة إلى المكان الذي استدعاها بعد انتهاء تنفيذها.
وبذلك يستطيع البرنامج استخدام هذه النتيجة في عمليات أخرى بدلًا من فقدانها بعد انتهاء الدالة.
ولهذا تعتبر القيم المرجعة وسيلة لتبادل البيانات بين الدوال وبقية البرنامج.
---
لماذا نستخدم القيم المرجعة؟
في المشاريع الحقيقية، تنفذ الدوال العديد من العمليات مثل إجراء الحسابات، أو معالجة البيانات، أو تحليل المعلومات.
وبعد انتهاء هذه العمليات، يحتاج البرنامج إلى النتيجة حتى يكمل عمله.
لذلك تقوم الدالة بإرجاع القيمة بدلًا من إعادة تنفيذ العملية مرة أخرى.
وهذا يجعل البرنامج أكثر سرعة وكفاءة.
---
ماذا يحدث عند إرجاع قيمة؟
عندما تعيد الدالة قيمة، ينتقل البرنامج إلى المكان الذي استدعاها منه.
ثم يستطيع استخدام تلك القيمة بأي طريقة مناسبة، مثل تخزينها داخل متغير، أو استخدامها في عملية حسابية، أو إرسالها إلى دالة أخرى.
وبذلك تصبح البيانات متاحة لبقية أجزاء البرنامج.
---
هل يجب أن تعيد جميع الدوال قيمة؟
لا.
فهناك دوال يكون دورها تنفيذ مهمة فقط، مثل عرض رسالة أو كتابة بيانات في ملف.
وهناك دوال يكون هدفها إنتاج نتيجة يحتاج إليها البرنامج، ولذلك تعيد قيمة بعد انتهاء تنفيذها.
ويعتمد ذلك على طبيعة المهمة التي تؤديها الدالة.
---
الفرق بين طباعة النتيجة وإرجاعها
من الأخطاء الشائعة الاعتقاد أن طباعة النتيجة تعني إرجاعها.
لكن في الحقيقة، الطباعة تجعل النتيجة تظهر للمستخدم فقط.
أما القيمة المرجعة فتسمح للبرنامج نفسه باستخدام النتيجة في عمليات أخرى.
ولهذا فإن إرجاع القيم أكثر أهمية عند بناء البرامج الكبيرة.
---
أهمية القيم المرجعة في مشاريع C++
تعتمد معظم برامج C++ الاحترافية على الدوال التي تعيد قيمًا.
فعلى سبيل المثال، قد تعيد الدالة نتيجة عملية حسابية، أو بيانات مقروءة من ملف، أو حالة نجاح عملية معينة، أو معلومات تمت معالجتها.
ثم تستخدم بقية أجزاء البرنامج هذه النتائج لاتخاذ القرارات أو تنفيذ عمليات أخرى.
---
فوائد استخدام القيم المرجعة
توفر القيم المرجعة العديد من الفوائد، منها:
- إعادة استخدام نتائج العمليات.
- تقليل تكرار الكود.
- تسهيل انتقال البيانات داخل البرنامج.
- جعل الدوال أكثر مرونة.
- تحسين تنظيم المشاريع.
- تسهيل تطوير البرامج وصيانتها.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- الاعتقاد أن طباعة النتيجة تعادل إرجاعها.
- نسيان استخدام القيمة المرجعة بعد استلامها.
- إعادة قيم لا يحتاج إليها البرنامج.
- الخلط بين الدوال التي تعيد قيمة والدوال التي تنفذ مهمة فقط.
لذلك يجب التفكير في الهدف من الدالة قبل تحديد ما إذا كانت ستعيد قيمة أم لا.
---
ملخص الدرس
تعرفنا في هذا الدرس على القيم المرجعة (Return Values) في C++، وعرفنا أنها تسمح للدالة بإعادة نتيجة إلى البرنامج بعد انتهاء تنفيذها. كما تعلمنا الفرق بين طباعة النتيجة وإرجاعها، وأهمية القيم المرجعة في كتابة برامج أكثر تنظيمًا واحترافية.
في الدرس السادس عشر سنتعرف على نطاق المتغيرات (Scope)، وسنفهم لماذا يمكن استخدام بعض المتغيرات في أماكن معينة فقط، وكيف يؤثر ذلك على طريقة كتابة البرامج.



