برنامه نویسی 1559 بازدید

در زبان برنامه‌نویسی ++C نه‌ تنها می‌توان مقادیر را با ارجاع به یک تابع ارسال کرد، بلکه می‌توان مقدار بازگشتی با ارجاع را نیز به دست آورد. برای درک این قابلیت، باید در مورد متغیرهای سراسری با در مورد متغیرهای سراسری که در مطالب قبلی معرفی کردیم آشنایی داشته باشید. برای مطالعه قسمت قبلی این مجموعه مطلب آموزشی می‌توانید روی لینک زیر کلیک کنید:

مثال

بازگشتی با ارجاع

#include <iostream>
using namespace std;
// Global variable
int num;
// Function declaration
int& test();
int main()
{
    test() = 5;
    cout << num;
    return 0;
}
int& test()
{
    return num;
}

خروجی

5

در برنامه فوق، نوع بازگشتی تابع ()test به صورت &int است. از این رو این تابع یک ارجاع از متغیر num بازگشت می‌دهد.

گزاره بازگشتی تابع به صورت زیر است:

return num;

برخلاف بازگشتیِ با مقدار، این گزاره مقدار متغیر num را بازگشت نمی‌دهد، بلکه خود متغیر یعنی آدرس آن را بازگشت می‌دهد. از این رو زمانی که متغیر بازگشت یابد، می‌توان آن را به یک مقدار مثلاً به صورت زیر انتساب داد:

test() = 5;

بدین ترتیب مقدار 5 در متغیر num ذخیره می‌شود که روی صفحه نمایش پیدا می‌کند.

نکات مهمی که هنگام استفاده از بازگشت با ارجاع باید به خاطر داشت

تابع معمولی مقدار بازگشت می‌دهد، اما این تابع چنین نیست. از این رو نمی‌توان یک ثابت را از تابع بازگشت داد:

int& test() {
    return 2;
}

نمی‌توان یک متغیر محلی را از این تابع بازگشت داد:

int& test()
{
    int n = 2; 
    return n; 
}

بدین ترتیب به پایان این بخش از سری مقالات راهنمای جامع ++C می‌رسیم. برای مطالعه بخش بعدی روی لینک زیر کلیک کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای 4 نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«میثم لطفی» در رشته‌های ریاضیات کاربردی و مهندسی کامپیوتر به تحصیل پرداخته و شیفته فناوری است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار با مجله فرادرس همکاری دارد.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *