C++ References

🔹 تعریف

  • Reference (ارجاع) یک نام مستعار برای یک متغیر موجود است.

  • با یک reference می‌توان به همان متغیر اصلی دسترسی داشت و آن را تغییر داد.

  • تفاوت اصلی با pointer: reference نمی‌تواند null باشد و بعد از تعریف قابل تغییر نیست.

🔹 نحوه تعریف

type &refName = variable;
  • & بعد از نوع داده → تعریف reference است.

  • پس از تعریف، refName همیشه همان متغیر اصلی را نشان می‌دهد.

1️⃣ مثال ساده

#include <iostream> using namespace std; int main() { int x = 10; int &ref = x; // ref یک reference به x است cout << "x = " << x << endl; // 10 cout << "ref = " << ref << endl; // 10 ref = 20; // تغییر مقدار از طریق reference cout << "x = " << x << endl; // 20 }

2️⃣ استفاده از reference در توابع

  • می‌توان reference را به عنوان پارامتر تابع استفاده کرد تا تغییرات روی متغیر اصلی اعمال شود.

#include <iostream> using namespace std; void addTen(int &num) { num += 10; } int main() { int a = 5; addTen(a); cout << a << endl; // خروجی: 15 }

3️⃣ نکات مهم

  1. Reference همیشه باید هنگام تعریف مقداردهی شود.

  2. Reference نمی‌تواند به null اشاره کند.

  3. تغییر از طریق reference روی متغیر اصلی اثر می‌گذارد.

  4. می‌توان از reference در تابع‌ها، آرایه‌ها و کلاس‌ها استفاده کرد تا حافظه و کارایی بهینه شود.

🔹 تفاوت Reference و Pointer

ویژگیReferencePointer
Null امکان‌پذیر؟❌ خیر✅ بله
تغییر مرجع بعد از تعریف؟❌ خیر✅ بله
استفادهساده‌تر و امن‌ترانعطاف‌پذیرتر