بازگشت مقدار از تابع
آشنایی با انواع مقادیر بازگشتی از توابع در C++
بازگشت مقدار از تابع
توابع میتوانند مقادیر را به فراخواننده برگردانند. نوع مقدار بازگشتی در تعریف تابع مشخص میشود.
انواع مقادیر بازگشتی
عدد صحیح
int add(int a, int b) {
return a + b;
}
عدد اعشاری
double divide(double a, double b) {
return a / b;
}
رشته
string getGreeting(string name) {
return "سلام " + name + "!";
}
بولی
bool isEven(int number) {
return (number % 2 == 0);
}
چندین return
int getGrade(int score) {
if (score >= 90) return 5;
if (score >= 80) return 4;
if (score >= 70) return 3;
if (score >= 60) return 2;
return 1;
}
بازگشت مرجع
int& getElement(int arr[], int index) {
return arr[index]; // مرجع عنصر را برمیگرداند
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
getElement(numbers, 2) = 100; // میتوان مقدار را تغییر داد
cout << numbers[2]; // 100
return 0;
}
بازگشت اشارهگر
int* findMax(int arr[], int size) {
int* maxPtr = &arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > *maxPtr) {
maxPtr = &arr[i];
}
}
return maxPtr;
}
بازگشت چندین مقدار
C++ نمیتواند مستقیماً چندین مقدار برگرداند، اما میتوان از راهحلهای زیر استفاده کرد:
روش 1: استفاده از مرجع
void getMinMax(int arr[], int size, int &min, int &max) {
min = max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min) min = arr[i];
if (arr[i] > max) max = arr[i];
}
}
int main() {
int numbers[] = {5, 2, 8, 1, 9};
int min, max;
getMinMax(numbers, 5, min, max);
cout << "Min: " << min << ", Max: " << max;
return 0;
}
روش 2: استفاده از struct
struct MinMax {
int min;
int max;
};
MinMax getMinMax(int arr[], int size) {
MinMax result;
result.min = result.max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < result.min) result.min = arr[i];
if (arr[i] > result.max) result.max = arr[i];
}
return result;
}
تابع void
void printMessage(string message) {
cout << message << endl;
// هیچ مقداری برنمیگرداند
}
بهترین شیوهها
- نوع بازگشتی را با دقت انتخاب کنید
- از return زودهنگام برای سادهسازی استفاده کنید
- از مرجع برای بازگشت اشیاء بزرگ استفاده کنید
- از struct برای بازگشت چندین مقدار استفاده کنید
نکات مهم
- هر تابع فقط یک مقدار میتواند برگرداند
- نوع بازگشتی باید با return مطابقت داشته باشد
- void یعنی هیچ مقداری برنمیگرداند
- میتوانید چندین return داشته باشید
این مبحث بخشی از دوره آموزش کامل C++ است.