Linux C++ 函數 基本概念(概覽)

我的博客首頁(點擊查看詳情) -- https://blog.51cto.com/11495268
    ios

一、簡介

    C++語言 中任何事情都須要用到函數,本文 介紹 函數相關的基本概念,瞭解 這有樣的 存在便可 -- 函數定義、函數調用、函數重載、函數模板(至於 C++中 特有的 類函數 本文暫不介紹)
    ide

二、函數定義

// 定義函數時 函數名後面 括號中 參數 爲 形參
返回值類型 函數名([形參])
{
    函數體
}

    

三、函數調用

// 函數 調用時 函數名後面 括號中 參數 爲 實參
#include <iostream>
using namespace std;

void exchange_num(int *first_num, int *sec_num)
{
    int exchange_tmp = 0;
    exchange_tmp = *first_num;
    *first_num = *sec_num;
    *sec_num = exchange_tmp;
}

int main(void)
{
    int first_num = 1;
    int sec_num= 10;

    // 調用函數
    exchange_num(&first_num, &sec_num);

    cout << "first_num:" << first_num << endl;
    cout << "sec_num:" << sec_num << endl; 

    return 0;
}

    

四、函數重載

    C++ 容許同一個 函數名 定義 多個 函數,重載函數 必須 參數個數 或者 參數類型 不一樣
    函數

// 函數 調用時 函數名後面 括號中 參數 爲 實參
#include <iostream>
using namespace std;

void exchange_num(int *first_num, int *sec_num)
{
    int exchange_tmp = 0;
    exchange_tmp = *first_num;
    *first_num = *sec_num;
    *sec_num = exchange_tmp;
}

void exchange_num(double *first_num, double *sec_num)
{
    double exchange_tmp = 0;
    exchange_tmp = *first_num;
    *first_num = *sec_num;
    *sec_num = exchange_tmp;
}

int main(void)
{
    int ifirst_num = 1;
    int isec_num= 10;

    double dfirst_num = 1.1;
    double dsec_num = 10.01;

    // 調用函數
    exchange_num(&ifirst_num, &isec_num);
    exchange_num(&dfirst_num, &dsec_num);

    cout << "ifirst_num:" << ifirst_num << endl;
    cout << "isec_num:" << isec_num << endl; 

    cout << "dfirst_num:" << dfirst_num << "\ndsec_num:" << dsec_num << endl; 

    return 0;
}

    

五、函數模板

    函數重載 時 能夠發現,有些 重載函數 只是參數類型不一樣罷了,在 C++語言中,數據類型 較多,如此 豈不是 每一個類型 都須要 寫個 重載函數(理論上 這是 可行的),可是 形成大量的 重複代碼,函數模板 正是 解決 這個問題;建議 通用函數,在函數調用時,系統會根據 實參的類型 來取代 模板中的 虛擬類型,從而實現 不一樣函數的功能spa

// 函數 調用時 函數名後面 括號中 參數 爲 實參
// 模板 函數調用 不支持 隱式類型轉換
#include <iostream>
using namespace std;

// class 關鍵字也能夠用 typename 關鍵字替換
template <class c2>
void exchange_num(c2 *first_num, c2 *sec_num)
{
    c2 exchange_tmp = 0;
    exchange_tmp = *first_num;
    *first_num = *sec_num;
    *sec_num = exchange_tmp;
}
int main(void)
{
    int ifirst_num = 1;
    int isec_num= 10;

    double dfirst_num = 1.1;
    double dsec_num = 10.01;

    // 調用函數
    exchange_num(&ifirst_num, &isec_num);
    exchange_num(&dfirst_num, &dsec_num);

    cout << "ifirst_num:" << ifirst_num << endl;
    cout << "isec_num:" << isec_num << endl; 

    cout << "dfirst_num:" << dfirst_num << "\ndsec_num:" << dsec_num << endl; 

    return 0;
}
相關文章
相關標籤/搜索