C++ Functions - Pass By Reference

🔹 تعریف

  • Pass By Reference یعنی آدرس متغیر اصلی به تابع داده شود.

  • تغییرات داخل تابع روی متغیر اصلی اعمال می‌شود.

  • علامت & در تعریف پارامتر مشخص می‌کند که ارجاع است:

void functionName(type &param) { ... }

1️⃣ مثال ساده

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

2️⃣ مثال با چند پارامتر

#include <iostream> using namespace std; void swap(int &x, int &y) { int temp = x; x = y; y = temp; } int main() { int a = 10, b = 20; swap(a, b); cout << "a = " << a << ", b = " << b << endl; // خروجی: a = 20, b = 10 }

3️⃣ مقایسه با Pass By Value

#include <iostream> using namespace std; void addFiveByValue(int num) { num += 5; } void addFiveByReference(int &num) { num += 5; } int main() { int x = 10; addFiveByValue(x); cout << "By Value: " << x << endl; // خروجی: 10 addFiveByReference(x); cout << "By Reference: " << x << endl; // خروجی: 15 }

🔹 نکات مهم

  1. & در تعریف پارامتر مشخص می‌کند که تابع پارامتر را به صورت ارجاع دریافت می‌کند.

  2. Pass By Reference برای تغییر مقدار اصلی یا کاهش مصرف حافظه مناسب است.

  3. Referenceها نمی‌توانند null باشند و بعد از تعریف قابل تغییر نیستند.

  4. برای داده‌های بزرگ مثل آرایه‌ها، struct و کلاس‌ها استفاده از Reference به جای Pass By Value بهینه‌تر است.