函數可以有多個參數版本,這樣的函數被稱為多載 (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 ...
沒有留言:
張貼留言