بازگشت مقدار از تابع

آشنایی با انواع مقادیر بازگشتی از توابع در 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;
    // هیچ مقداری برنمی‌گرداند
}

بهترین شیوه‌ها

نکات مهم

این مبحث بخشی از دوره آموزش کامل C++ است.

ابزارهای مرتبط