فراخوانی با مقدار در زبان C++
در این نوع فراخوانی فقط یک کپی از مقدار اصلی به تابع ارسال می شود و تغییرات اعمال شده در تابع تاثیری بر مقدار اصلی ندارد. در زبان C++ به طور پیشفرض آرگومان ها به صورت فراخوانی با مقدار (By Value) به توابع ارسال می شوند. به این معنی که توابع نمی توانند مقادیر اصلی آرگومان ها را تغییر دهند. برای نمونه تابع swap() را در نظر بگیرید:
// function definition to swap the values. void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put x into y */ return; }
در مثال زیر قصد داریم از طریق فراخوانی با مقدار (By Value) مقدار متغیر a و b را با هم عوض کنیم:
#include <iostream> using namespace std; // function declaration void swap(int x, int y); int main () { // local variable declaration: int a = 100; int b = 200; cout << "Before swap, value of a :" << a << endl; cout << "Before swap, value of b :" << b << endl; // calling a function to swap the values. swap(a, b); cout << "After swap, value of a :" << a << endl; cout << "After swap, value of b :" << b << endl; return 0; } // function definition to swap the values. void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put x into y */ return; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
اگر به نتیجه مثال بالا توجه کنید، متوجه خواهید شد که با این که ما مقدار متغیرهای a و b را درون تابع swap() تغییر داده ایم، اما مقدار آن ها تغییر نکرده اند.
نوشته فراخوانی با مقدار در زبان C++ – آموزش زبان C++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.