ما می توانیم کارهای پیچیده ای را به یک تابع بدهیم. مثلا یک ورودی را از کاربر بگیریم و کار خاصی را روی آن انجام دهیم و خروجی را به وی تحویل دهیم.
ساخت تابع با ++C
در این بخش قصد داریم با ساخت تابع با ++C آشنا شویم.
با ساخت تابع ساده شروع می کنیم.
با کلمه void و سپس نام دلخواه تابع شروع کردیم. نام تابع را myFunction گذاشتیم.
وظیفه این تابع ، چاپ یک متن moomsan.blog.ir میباشد.
پس دیدید که ساخت یک تابع در ++C چقدر راحت است.
حال تابع را فراخوانی می کنیم. کافی است کلمه myFunction و پرانتز باز و بسته را بنویسید.
کدهای داخل تابع اجرا شده و نتیجه را خواهید دید.
تابع ساده ای بود اما می خواستیم شما مفهوم تابع را درک کنید.
#include <iostream>
using namespace std;
void myFunction() {
cout << "moomsan.blog.ir";
}
int main() {
myFunction();
return 0;
}
فراخوانی تابع
برای فراخوانی تابع محدودتی نداریم می توانیم هر چند بار که خواستیم تابع را فراخوانی کنیم.
من از بک اسلش n (\n) استفاده کردم تا متن ها زیر هم چاپ شوند.
#include <iostream>
using namespace std;
void myFunction() {
cout << "moomsan.blog.ir\n";
}
int main() {
myFunction();
myFunction();
myFunction();
return 0;
}
پارامتر و آرگومان در تابع
در این بخش با پارامتر و آرگومان در تابع آشنا می شوید.
اطلاعات را می توان به عنوان یک پارامتر به توابع منتقل کرد. پارامترها مانند یک متغیر در تابع بکار می روند.
در مثال زیر پس از نام تابع و در داخل پرانتز متغیر رشته ای fname دریافت می شود و در تابع از آن استفاده کرده ایم.
پارامتر و متغیر fname با دستور cout چاپ شده است.
پس از تعریف تابع می توانیم تابع را فراخوانی کنیم.
هنگامی که یک پارامتر به تابع منتقل می شود ، به آن یک آرگومان گفته می شود.
در هنگام فراخوانی تابع myFunvtion بایستی یک رشته همراه آن ارسال شود (mahdi) که به آن آرگومان گویند.
پس fname را پارمتر و mahdi , mahdavi را آرگومان گوییم.
#include <iostream>
#include <string>
using namespace std;
void myFunction(string fname) {
cout << fname << " - moomsan.blog.ir\n";
}
int main() {
myFunction("mahdi");
myFunction("mahdavi");
return 0;
}
مقدار پارامتر پیش فرض تابع
می توانیم مقدار پارامتر پیش فرض تابع را مشخص کنیم .
در مثال زیر اگر تابع بدون آرگومان فراخوانی شود آن مقدار پیش فرض چاپ می شود.
در هنگام تعریف تابع ، متغیر fname دارای مقدار hoseyn می باشد.
حال در هنگام فراخوانی تابع اول نام mahdi را قرار داده ایم و آن چاپ شده است.
در هنگام فراخوانی تابع دوم بدون آرگومان قرار داده ایم و hoseyn چاپ شده است.
#include <iostream>
#include <string>
using namespace std;
void myFunction(string fname="hoseyn") {
cout << fname << "\n";
}
int main() {
myFunction("mahdi");
myFunction();
return 0;
}
تابع با چند پارامتر
برای ساخت تابع با چند پارامتر می توانیم از کاما استفاده کنیم.
در مثال زیر دو پارامتر و ورودی گرفته می شود و چاپ می شود.
توجه داشته باشید که وقتی با چندین پارامتر کار می کنید ، فراخوانی تابع باید همان تعداد آرگومان را داشته باشد که پارامترهای موجود است ، و آرگومان ها باید به همان ترتیب منتقل شوند.
#include <iostream>
#include <string>
using namespace std;
void myFunction(string fname, int age) {
cout << fname << " and " << age << " years old. \n";
}
int main() {
myFunction("mahdi",25);
myFunction("faeze", 19);
return 0;
}
مقادیر برگشتی
کلمه کلیدی void ، که در مثالهای فوق به کار رفته است ، نشان می دهد که عملکرد نباید مقدار را برگرداند.
اگر می خواهید یک تابع مقدار را برگرداند ، می توانید به جای اعتبار از یک نوع داده مانند int ، رشته و غیره استفاده کنید و از کلمه کلیدی Return در داخل تابع استفاده کنید.
در مثال زیر مقادیر برگشتی را یاد می گیرید. در این مثال بجای void از int استفاده کردیم.
از return استفاده کردیم.
در هنگام فراخوانی تابع را چاپ کردیم.
#include <iostream>
#include <string>
using namespace std;
int myFunction(int num) {
return 4 + num;
}
int main() {
cout << myFunction(12);
return 0;
}
بررسی Function Overloading
با Function Overloading بجای اینکه چند تابع با چند نام مختلف تعریف کنیم که یک عملکرد را دارند می توانیم مطابق مثال زیر یک تابع بنام top را تعریف کنیم که یک عمل را انجام میدهند.
همان طور که می بینید هر دو تابع ، دو پارامتر عددی می گیرند و با هم جمع می کنند.
#include <iostream>
using namespace std;
int top(int x, int y) {
return x + y;
}
double top(double x, double y) {
return x + y;
}
int main() {
int myNum1 = top(8, 5);
double myNum2 = top(4.3, 6.26);
cout << "Int: " << myNum1 << "\n";
cout << "Double: " << myNum2;
return 0;
}
پایان قسمت شانزدهم