شرح C++ References || تعلم c++ خطوة بخطوة

 

تسمح لك ++References C بإنشاء اسم ثانٍ للمتغير الذي يمكنك استخدامه لقراءة أو تعديل البيانات الأصلية المخزنة في هذا المتغير. على الرغم من أن هذا قد لا يبدو جذابًا في البداية، إلا أن ما يعنيه هذا هو أنه عندما تقوم بتعريف مرجع وتعيينه متغيرًا، فإنه سيسمح لك بمعالجة المرجع تمامًا كما لو كان المتغير الأصلي لغرض الوصول إلى القيمة وتعديلها من المتغير الأصلي - حتى إذا كان الاسم الثاني References) يقع ضمن نطاق مختلف. هذا يعني، على سبيل المثال، أنك إذا جعلت وسيطات الدالة مراجع، فستكون لديك طريقة فعالة لتغيير البيانات الأصلية التي تم تمريرها إلى function. هذا يختلف تمامًا عن كيفية عمل C ++ بشكل طبيعي، حيث يكون لديك وسيطات ل function منسوخة في متغيرات جديدة. كما أنه يسمح لك بتقليل كمية النسخ التي تحدث خلف الكواليس بشكل كبير، سواء مع functions أو في مناطق أخرى من C ++ ، مثل catch clauses.


الاختلاف بين المرجع والمؤشر References vs Pointers

غالبًا ما يتم الخلط بين المراجع والمؤشرات، لكن يجب أن أقول إن هناك ثلاثة اختلافات رئيسية بين المرجع والمؤشر:

◉ لا يمكنك أبدًا الحصول على مرجع فارغ (NULL references)، ويجب أن تفترض دائمًا أن المرجع متصل بجزء من الذاكرة.

◉ عند تعيين مرجع لكائن، لا يمكنك تحديد أنه يشير إلى كائن آخر. ولكن في المؤشرات (Pointers) يمكنك القيام بذلك وقتما تشاء.

◉ يجب تعيين Reference في نفس الوقت الذي تم إنشاؤه فيه، ولكن يمكنك تعيين Pointers وقتما تشاء.


 إنشاء References في C ++

تخيل اسم متغير كاسم موقعه في الذاكرة. يمكنك بعد ذلك اعتبار Reference كعلامة ثانية لموقع الذاكرة، بحيث يمكن الوصول إلى محتويات المتغير من خلال المتغير الرئيسي واسم  Reference. انظر الرمز التالي للحصول على مثال:


int i = 17;
C ++
نسخ


يمكننا تحديد المتغير المرجعي لـ i على النحو التالي:

int& r = i;
نسخ


لاحظ المثال التالي حيث r هو متغير مرجعي من نوع عدد صحيح يشير إلى i و s هو متغير مرجعي من النوع double الذي يشير إلى d:

#include <iostream>

using namespace std;

int main () {
// declare simple variables
int i;
double d;

// declare reference variables
int& r = i;
double& s = d;

i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;

d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;

return 0;
}
C ++
نسخ

بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7


الرقمالوصف
1
References as Parameters المراجع كمعلمات

إرسال functions المرجعية كمعامل أكثر أمانًا من إرسال parameters في C ++.

2
مرجع كقيمة إرجاع Reference as Return Value

يمكنك إرجاع المرجع من دالة C ++ مثل أي نوع بيانات آخر.



كلمات مفتاحية: