C++ 速查手冊 V1.00 - 單元 8.8 - 多載函數




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


001 #include <iostream>
002
003 void do_something
004 (int n1, int n2, int n3) {
005    std::cout << n1 + n2 + n3
006              << std::endl;
007 }
008
009 void do_something
010 (double n1, double n2, double n3) {
011    std::cout << n1 + n2 + n3
012              << std::endl;
013 }
014
015 void do_something
016 (int n1) {
017    std::cout << n1
018              << std::endl;
019 }
020
021 int main() {
022    do_something(10);
023    do_something(0.2, 4.5, 6.1);
024    do_something(3, 4, 5);
025
026    return 0;
027 }
028
029 /* Kaiching Chang 
030    u0808.cpp
031    2014-02 */

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


003 void do_something
004 (int n1, int n2, int n3) {
005    std::cout << n1 + n2 + n3
006              << std::endl;
007 }

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


009 void do_something
010 (double n1, double n2, double n3) {
011    std::cout << n1 + n2 + n3
012              << std::endl;
013 }

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


015 void do_something
016 (int n1) {
017    std::cout << n1
018              << std::endl;
019 }

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


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

continue ...

沒有留言: