عملکرد پارامترها درون تابع به عنوان متغیر برشمرده میشه و اطلاعات رو به عنوان یک پارامتر به توابع انتقال میده.بعد از نام تابع در داخل پرانتز پارامترها قرار میگیرند که با علامت کاما جدا میشوند.
در مثال زیر تابعی داریم که پارامتر اون از نوع رشته ای بنام nameمی باشد عملکرد این تابع به این صورته که وقتی تابع فراخوانی میشه از یک نام عبور کرده و از این تابع برای چاپ نام کامل استفاده میکنه .اما آرگومان به چه معناست؟
وقتی یک پارامتر به تابع منتقل بشه به اون آرگومان گوییم در مثال زیر nameپارامتر وMobina,Pouria آرگومان بحساب میان .
در این مثال ما قصد داریم نام کاربر و فامیلی ان را دریافت کنیم.
#include
#include
using namespace std;
void myFunction( string name) {
cout << name << “Mohammadi\n”;
}
int main() {
myFunction(“Mobina\t”);
myFunction(“Pouria\t”);
return 0;
}
خروجی :
// Mobina Mohammadi
// Pouria Mohammadi
ایافقط یک پارامتر میتونیم داشته باشیم ؟؟؟؟
در جواب میگیم قطعا نه در درون تابع ما هرچندتا که بخواهیم میتونیم پارامتر قرار بدیم که ارگومان های چندگانه یا Multiple Parameters می گوییم.
اما نکته اینجاست که وقتی با چندین پارامتر کار می کنید ، فراخوانی عملکرد باید همان تعداد پارامتر داشته باشد و آرگومان ها باید به همان ترتیب منتقل بشن.
در مثال قبل ما فقط یک پرامتر از نوع رشته ای معرفی کردیم همین مثال رو با افزودن پارامترهای دیگر بررسی میکنیم.
در مثال زیرما قصد داریم نام کاربرو فامیلی و به همراه سن اش دریافت کنیم.
#include<iostream>
#include<string>
using namespace std;
void myFunction( string name,int age) {
cout << name << “Mohammadi.” << age << “years old.\n”;
}
int main() {
myFunction(“Mobina\t”,20);
myFunction(“Pouria\t”,24);
return 0;
}
خروجی
// Mobina Mohammadi. 20 years old.
// Pouria Mohammadi. 24years old.
زمانیکه ما تابع را بدون هیچ پارامتری صدا میزنیم تابع میره سراغ آرگومان پییش فرض که ما میتونیم یه آرگومان پیش فرض در نظر بگیریم و اونرو فراخوانی کنیم با استفاده از علامت برابرهم می تونیم از مقدار پارامتر پیش فرض استفاده کنیم .
به مثال زیر دقت کنید .در این مثال آرگومان پیش فرض من کانادا هستش همونطور که میبینید در خط یازده کد برنامه تابع بدون هیچ پارامتری فراخوانی شده و رفته سراغ آرگومان پیش فرض که کانادا هست .
#include<iostream>
#include<string>
using namespace std;
void myFunction(string country = “Canada”) {
cout << country << “\n”;
}
int main() {
myFunction(“Iran”);
myFunction(“USA”);
myFunction();
myFunction(“Russia”);
return 0;
}
خروجی
Iran
USA
Canada
Russia
هرگاه ما چند تابع را با یک نام بنویسیم به اصلاح اورلود میکنیم.به طوری دیگر اگر تابع های چندگانه با پارامترهای متفاوت داشته باشیم و بجای اینکه دوتا تابع که کار یکسانی انجام میدهند رو فراخوانی کنیم میایم یه تابع را اورلود میکنیم.
در مثال زیر سه تابع به صورت تابع های اورلود شده هستند چون آرگومان های ارسالی این توابع متفاوت هست.
int myFunction(int x)
float myFunction(float x)
double myFunction(double x, double y)
به مثال زیر دقت کنید:
هموطور که میبینید در کد زیر تابع
()plusFunc دوبار با انواع تعداد متفاوتی آرگومان فراخوانی شده.
#include<iostream>
#include<string>
using namespace std;
int plusFunc(int x, int y) {
return x + y;
}
double plusFunc(double x, double y) {
return x + y;
}
int main() {
int myNum1 = plusFunc(8, 5);
double myNum2 = plusFunc(4.3, 6.26);
cout << “Int: ” << myNum1 << “\n”;
cout << “Double: ” << myNum2;
return 0;
}
خروجی
Int: 13
Double: 10.56
کاربرد این امر برای افزایش خوانایی کدها که در مباحث پیشرفته و شی گرایی در کلاس ها بیشتر بهش برخورد میکنید.
تمرین:
برنامه ای بنویسید که نام و نام خانوادگی و سن اعضای خانوادتون رو دریافت کنه .
و اما در جلسات اینده میخواهیم به یکی از مهم ترین ساختمان داده ها(مبحث آرایه ها ) در سی پلاس پلاس آشنا بشیم.
متخصصین جوان پاورایی با هدف سهولت در فرایند یادگیری ، مهارت افزایی شما عزیزان با بازار کار مربوطه در تمامی مراحل همراه ،پشتیبان و خدمت رسان شما عزیزان هستند.