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