C++ 速查手冊

8.8 - 多載函數

函數可以有多個參數版本,這樣的函數被稱為多載 (overload) ,例如

#include <iostream>
  
void do_something(int n1, int n2, int n3) {
    std::cout << n1 + n2 + n3 << std::endl;
}

void do_something(double n1, double n2, double n3) {
    std::cout << n1 + n2 + n3 << std::endl;
}

void do_something(int n1) {
    std::cout << n1 << std::endl;
}

int main() {
    do_something(10);
    do_something(0.2, 4.5, 6.1);
    do_something(3, 4, 5);
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   https://kaiching.org/
   檔名:u0808.cpp
   功能:示範 C++ 的函數
   作者:張凱慶*/

這裡定義了三個 do_something() 函數,有三種參數版本,第一個版本需要三個整數參數

void do_something(int n1, int n2, int n3) {
    std::cout << n1 + n2 + n3 << std::endl;
}

第二個版本需要一個浮點數參數與兩個整數參數

void do_something(double n1, double n2, double n3) {
    std::cout << n1 + n2 + n3 << std::endl;
}

第三個版本則只需要一個整數參數

void do_something(int n1) {
    std::cout << n1 << std::endl;
}

不同的參數版本使相同名稱的函數能夠處理不同的資料型態 (data type) ,此例編譯執行結果如下

$ g++ u0808.cpp
$ ./a.out
10
10.8
12
$

上一頁 8.7 - inline 函數
回 C++ 速查手冊首頁
下一頁 8.9 - 函數指標
回 C++ 教材
回程式語言教材首頁