ارجاع‌ها در سی پلاس پلاس (References in Cpp)

در این قسمت تیم کدگیت را با آموزش ارجاع‌ها در سی پلاس پلاس همراهی کنید. در ابتدای آموزش، ارجاع‌ها را معرفی کرده و یک مثال را پیاده سازی می‌کنیم. در ادامه ارسال ارجاع‌ها در توابع را بررسی می‌کنیم. در آخر مثالی در مورد ارسال ارجاع در توابع می‌زنیم.  پیشنهاد می‌کنیم قبل از مطالعه این آموزش، آموزش‌های ابتدایی سی پلاس پلاس را مطالعه کنید.

ارجاع‌ها در سی پلاس پلاس

ارجاع یا reference اصطلاحا نامی جایگزین برای متغیر‌هاست. وقتی یک متغیر را  تعریف کرده و مقدار دهی می‌کنیم یک نام برای دسترسی به آن متغیر نسبت می‌دهیم. به عنوان مثال int a =10; در این جا a نامی است برای متغیری از جنس int با مقدار 10. در سی پلاس پلاس برای دسترسی به یک متغیر نام جایگزین (Reference) نیز تعریف می‌شود. این بدان معناست علاوه بر نام متغیر، نام جایگزین آن نیز برای دسترسی یا تغییر متغیر استفاده می‌شود. ارجاع‌ها به صورت زیر تعریف می‌شوند:

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

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

در کد بالا متغیر i و d را تعریف کرده و ارجاع‌های  r و s نیز به آنها داده شده است. سپس با استفاده از نام اصلی متغیر‌ها مقداری به هر کدام داده و آنها را با استفاده از ارجاع‌ها چاپ کردیم. خروجی کد بالا به صورت زیر است:

ارسال ارجاع‌ها به توابع

یکی از کاربردهای ارجاع‌ها در سی پلاس پلاس ارسال آنها به توابع است. وقتی یک متغیر را به عنوان ورودی در توابع ارسال می‌شود در واقع یک کپی از آن بوده اما با ارجاع‌ها، اصل متغیر ارسال شده و هر تغییر در آن روی کل برنامه‌تاثیر دارد. در مثال زیر دو متغیر را در متد Main تعریف کرده و در متد Swap مقدار آنها را جابجا کردیم. کد این مثال به صورت زیر است:

همانطور که در کد بالا می‌بینید دو متغیر قبل و بعد از صدا زدن تابع swap، را چاپ کردیم. با استفاده از ارجاع‌ها با تغییر در متد swap تغییرات در متد main نیز اعمال شد. خروجی کد بالا به صورت زیر می‌باشد:

تفاوت اشاره‌گرها و ارجاع‌ها در سی پلاس پلاس

در آموزش‌های گذشته اشاره به اشاره‌گرها کردیم و در این جلسه نیز به آموزش ارجاع‌ها پرداختیم. حال با توجه به آشنایی با اشاره‌گرها و ارجاع‌ها، تفاوت آنها را بیان می‌کنیم. این دو تقریبا شبیه به هم هستند و فقط در موارد جزئی با یکدیگر تفاوت دارند:

  1. نحوه ایجاد یکی با علامت * و دیگری با علامت & می‌باشد.
  2. برای تغییر مقدار متغیر با اشاره‌گر باید از علامت * استفاده کنید.
  3. اشاره‌گرها میتوانند خالی (Null) باشند اما ارجاع‌ها حتما باید مقدار دهی شوند.
  4. ارجاع‌ها قدرت کمتری نسبت به اشاره‌گرها دارند.

 

پسورد: www.codegate.ir

دسته : آموزش ++c, زبان c++

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz