関数のオーバーロード
-
-
3つの条件が過負荷になります
-
同じ関数名
-
不合理な引数リスト(戻り値とは何の関係)
-
同じスコープオーバーロードされた関数
-
-
メンバ関数をオーバーロードすることができる間、メンバ関数と静的メンバ関数との間に構成することができる過負荷、重い負荷を構成しないグローバル関数、メンバ関数とグローバル関数との間の重い負荷を構成することができます
- 通常の関数とテンプレート関数の間に、それはまた、過負荷構成することができるが、優先順位は、正常な機能を呼び出し、そして完全に一般的なメンバー関数と一致しない場合に隠遁型変換と一致します
例
1つの#include <iostreamの> 2 3 使用して 名前空間STDを、 4 5 INTは(追加INT A、INT B) 6 { 7 COUT << " int型追加(INT A、INT B)" << ENDLと、 8 リターン A + B。 9 } 10 11 二重追加(ダブル、ダブルB) 12 { 13 COUT << " ダブル追加(ダブル、ダブルB)" << ENDL。 14 リターン A + B。 15 } 16 17テンプレート<型名T> 18 Tの追加(T、T b)は 19 { 20 COUT << " Tアド(T、T b)は、" << ENDL。 21 リターン A + B。 22 } 23 24 25 のint main()の 26 { 27 追加(1、2)。 // INT(INT A、INT B)を追加 28 追加(1.0、2.0)。 //ダブル追加(ダブル、ダブルB) 29 追加(' A '、' B ')。 // Tは(T、T b)が追加 30 31 戻り 0 ; 32 }