بخش ۳ - مروری بر توابع و ردکردن پارامترها

در این بخش مروری خواهیم داشت بر انواع رد کردن پارامترها به توابع.

فهرست مثال‌ها

رد کردن پارامتر با مقدار

این برنامه‌ی خیلی ساده رد کردن پارامترها با مقدار (call by value) را نشان می‌دهد.

01_PassByVal.cpp
#include <iostream>
using namespace std;

void f(int x)
{
	int i = 5;
	x = i + 1;
}

int main()
{
	int a = 10;
	f(a);
	cout << a << endl;
	return 0;
}
				
رد کردن پارامتر با ارجاع

این برنامه‌ی خیلی ساده رد کردن پارامترها با ارجاع (call by reference) را نشان می‌دهد. این نوع رد کردن با ارجاع، خاص زبان سی‌پلاس‌پلاس است و در زبان سی این کار با اشاره‌گرها صورت می‌گیرد.

02_PassByRef.cpp
#include <iostream>
using namespace std;

void f(int x, int& y)
{
	int i = 5;
	x = i + 1;
	y = 18;
}

int main()
{
	int a = 10;
	int b = 11;
	f(a, b);			
	cout << a << endl;
	cout << b << endl;

	return 0;
}
				
فراخوانی تودرتوی توابع

این مثال ساده رد کردن پارامتر هنگام فراخوانی‌های متوالی توابع را بررسی می‌کند.

03_CallNested.cpp
#include <iostream>
using namespace std;

void g(int& y)
{
	int j = 2;
	y = j * 3;
}

void f(int x)
{
	g(x);
	cout << x << endl;
}

int main()
{
	int a = 10;
	f(a);
	cout << a << endl;
	return 0;
}