آموزش C++ ارجاع

ارجاع یک نام مستعار برای متغیری است که قبلاً تعریف شده است. وقتی که یک ارجاع توسط یک متغیر مقداردهی می شود ممکن است نام متغیر یا نام ارجاع برای اشاره به متغیر استفاده شود.

تفاوت ارجاع و اشاره گر

اغلب ارجاع با اشاره گر اشتباه گرفته می شود، اما باید بگویم که سه تفاوت عمده بین ارجاع و اشاره گر وجود دارد

  • هیچوقت نمی‌توانید ارجاع null داشته باشید و همیشه باید تصور کنید که یک ارجاع متصل به بخشی از حافظه است.
  • وقتی که یک ارجاع به یک شی مقداردهی می شود، نمی توانید تعیین کنید که به شی دیگری اشاره کند. اما در اشاره گر ها در هر زمان که بخواهید می توانید این کار را انجام دهید.
  • یک ارجاع در همان زمان که ایجاد شد باید مقدار دهی شود، اما اشاره گر را می توانید هر زمان که بخواهید مقداردهی کنید.

 ایجاد  ارجاع در C++

 تصور کنید که نام متغیر به عنوان نام مکان آن در حافظه است. سپس می‌توانید ارجاع را به عنوان برچسب دومی برای مکان حافظه در نظر بگیرید پس می توان از طریق متغیر اصلی و نام ارجاع به محتویات متغیر دسترسی پیدا کرد. به عنوان مثال کد زیر را نگاه کنید:

int i = 17;

می توانیم متغیرارجاع برای i را به شکل زیر تعریف کنیم:

int& r = i;

به مثال زیر توجه کنید که در آن r یک متغیر ارجاع از نوع integer است که به 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;
}

بعد از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده می شود:

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

ارجاع معمولا در آرگومان توابع و یا توابع بازگشتی استفاده می شود.  در جدول زیر دو مفهوم مهمی که در ارجاع وجود دارد و هر برنامه نویسی باید آن را بداند ارائه شده است.

ردیف توضیحات
1

ارجاع به عنوان پارامتر توابع
ارسال ارجاع به عنوان پارامتر نسبت به ارسال پارامتر ها امنیت بیشتری در C++ دارد.

 

2 ارجاع به عنوان مقدار بازگشتی توابع
مانند هر نوع داده دیگر می توانید برای مقدار بازگشتی توابع ارجاع را استفاده کنید.

 

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید