کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش توابع در ++C

توابع در زبان C++

در زبان سی پلاس پلاس می توانید گروهی کد را بنویسید که بر اساس ورودی های گرفته شده و اجرای کدها روی ورودی خروجی می دهد و برای این گروه از کد که کار مشخصی انجام می دهند نامی در نظر بگیرید و در کدهای برنامه در صورت نیاز به اجرا، تابعی را که ایجاد نموده اید فراخوانی نمایید. باید بگویم تابع یک بلوک از کد است که فقط زمانی اجرا می شود که فراخوانی گردد.

شما می توانید داده ها را که به عنوان پارامتر شناخته می شوند، به تابع منتقل نمایید. توابع برای انجام اقدامات خاصی استفاده می شوند. (کد را یک بار تعریف و چندین بار از آن استفاده کنید.)

ایجاد تابع

C++ برخی از توابع از پیش تعریف شده مانند ()main را ارائه می دهد که برای اجرای کد استفاده می شود. اما شما همچنین می توانید توابع خود را برای انجام اقدامات خاص ایجاد نمایید. برای ایجاد یک تابع، نام تابع و به دنبال آن پرانتز () را قرار می دهیم:

    void myFunction() {
      // code to be executed
    }
    
  • • ()myFunction نام تابع است.
  • • void به این معنی است که تابع مقدار بازگشتی ندارد.
  • • در داخل تابع (بدنه)، کدی را اضافه نمایید که مشخص می کند تابع باید چه کاری انجام دهد.
  • • تابع را فراخوانی کنید.
  • • توابع اعلام شده بلافاصله اجرا نخواهد شد بلکه زمانی که آنها فراخوانی می شوند اجرا می گردند.

برای فراخوانی یک تابع، نام تابع را به همراه دو پرانتز () و نقطه ویرگول می نویسیم. در مثال زیر،myFunction()برای چاپ یک متن استفاده می شود:

    #include 
    using namespace std;
    void myFunction() {
      cout << "I just got executed!";
    }
    int main() {
      myFunction();
      return 0;
    }
    
    

خروجی :

I just got executed!

یک تابع را می توان چندین بار فراخوانی نمود:

        #include 
        using namespace std;
        
        void myFunction() {
          cout << "I just got executed!\n";
        }
        int main() {
          myFunction();
          myFunction();
          myFunction();
          return 0;
        }
        
        

خروجی :

  • I just got executed!
  • I just got executed!
  • I just got executed!

اعلامیه و تعریف تابع

یک تابع ++C از دو بخش تشکیل شده است:

  • • اعلان: نوع بازگشتی، نام تابع و پارامترها (در صورت وجود)
  • • تعریف: بدنه تابع (کدی که باید اجرا شود)
void myFunction() { // declaration
        // the body of the function (definition)
      }
      

توجه: اگر یک تابع تعریف شده توسط کاربر، مانند myFunction() بعد از تابع main() اعلام شود، یک خطا رخ خواهد داد:

        #include 
        using namespace std;
        
        int main() {
          myFunction();
          return 0;
        }
        void myFunction() {
          cout << "I just got executed!";
        }
        

خروجی :

In function 'int main()':

In function 'int main()': 5:3: error: 'myFunction' was not declared in this scope

با این حال، امکان جداسازی اعلان و تعریف تابع - برای بهینه سازی کد وجود دارد. شما اغلب برنامه های ++C را می بینید که دارای اعلان تابع در بالای main() و تعریف تابع در زیر main() هستند. این مسئله باعث می شود کد بهتر سازماندهی شده و خواندن آن آسان تر شود:

            #include 
            using namespace std;
            // Function declaration
            void myFunction();
            // The main method
            int main() {
              myFunction();  // call the function
              return 0;
            }
            // Function definition
            void myFunction() {
              cout << "I just got executed!";
            }
            

خروجی :

I just got executed!

پارامترها و آرگومان های تابع

اطلاعات را می توان به عنوان یک پارامتر به توابع ارسال کرد. پارامترها به عنوان متغیر در داخل تابع عمل می کنند. پارامترها بعد از نام تابع در داخل پرانتز مشخص می شوند. شما می توانید هر تعداد پارامتر را که می خواهید اضافه و با یک کاما جدا کنید:

                void functionName(parameter1, parameter2, parameter3) {
                  // code to be executed
                }
                

مثال زیر تابعی دارد که رشته ای به نام fname را به عنوان پارامتر می گیرد.

                    #include 
                    #include 
                    using namespace std;
                    void myFunction(string fname) {
                      cout << fname << " Refsnes\n";
                    }
                    int main() {
                      myFunction("Liam");
                      myFunction("Jenny");
                      myFunction("Anja");
                      return 0;
                    }
                    

خروجی :

Liam Refsnes

Jenny Refsnes

Anja Refsnes

مقدار پارامتر پیش فرض

شما می توانید با استفاده از علامت تساوی (=) از مقدار پارامتر پیش فرض استفاده نمایید. اگر تابع را بدون آرگومان فراخوانی کنیم، از مقدار پیش فرض ("Norway") استفاده خواهد کرد:

                        #include 
                        #include 
                        using namespace std;
                        void myFunction(string country = "Norway") {
                          cout << country << "\n";
                        }
                        int main() {
                          myFunction("Sweden");
                          myFunction("India");
                          myFunction();
                          myFunction("USA");
                          return 0;
                        }
                        

خروجی :

  • Sweden
  • India
  • Norway
  • USA

در داخل تابع، می توانید هر تعداد پارامتر که می خواهید اضافه نمایید:

                            #include 
                            #include 
                            using namespace std;
                            void myFunction(string fname, int age) {
                              cout << fname << " Refsnes. " << age << " years old. \n";
                            }
                            int main() {
                              myFunction("Liam", 3);
                              myFunction("Jenny", 14);
                              myFunction("Anja", 30);
                              return 0;
                            }
                            

خروجی :

  • Liam Refsnes. 3 years old.
  • Jenny Refsnes. 14 years old.
  • Anja Refsnes. 30 years old.

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

کلمه کلیدی void که در مثال های قبلی استفاده شد، نشان می دهد که تابع نباید مقداری را برگرداند. اگر می خواهید تابع مقداری را برگرداند، می توانید به جای void از یک نوع داده (مانند int، string و ...) و از کلمه کلیدی return در داخل تابع استفاده کنید:

    #include 
    using namespace std;
    int myFunction(int x) {
      return 5 + x;
    }
    int main() {
      cout << myFunction(3);
      return 0;
    }
    

خروجی :

8

این مثال مجموع یک تابع را با دو پارامتر برمی گرداند:

        #include 
        using namespace std;
        int myFunction(int x, int y) {
          return x + y;
        }
        int main() {
          cout << myFunction(5, 3);
          return 0;
        }
        

خروجی :

8

همچنین می توانید نتیجه را در یک متغیر ذخیره نمایید:

#include 
            using namespace std;
            int myFunction(int x, int y) {
              return x + y;
            }
            int main() {
              int z = myFunction(5, 3);
              cout << z;
              return 0;
            }
            

خروجی :

8

استفاده از ارجاع

در مثال‌های صفحه قبل، وقتی پارامترها را به یک تابع می‌فرستیم، از متغیرهای عادی استفاده می‌کنیم. شما همچنین می توانید یک ارجاع به تابع ارسال نمایید. این روش می تواند زمانی مفید باشد که شما نیاز به تغییر مقدار آرگومان ها دارید:

                #include 
                using namespace std;
                void swapNums(int &x, int &y) {
                  int z = x;
                  x = y;
                  y = z;
                }
                int main() {
                  int firstNum = 10;
                  int secondNum = 20;
                  cout << "Before swap: " << "\n";
                  cout << firstNum << secondNum << "\n";
                  swapNums(firstNum, secondNum);
                  cout << "After swap: " << "\n";
                  cout << firstNum << secondNum << "\n";
                  return 0;
                }
                

خروجی :

  • Before swap:
  • 1020
  • After swap:
  • 2010
1401/12/04 1277
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...