©️
C++ 関数の多重定義(オーバーロード)
多重定義(オーバーロード)とは
同じ名前で戻り値・引数が違う関数を作れる
int OverloadFunc(int a);
int OverloadFunc(int a, int b);
int OverloadFunc(int a, double c);
double OverloadFunc(double c, double d);
戻り値の型以外が同じ関数は多重定義できない
int OverloadFunc(int a, double c);
double OverloadFunc(int i, double d); // エラー
サンプル
#include <iostream>
#include <math.h>
// OverloadFuncを多重定義
int OverloadFunc(int a);
int OverloadFunc(int a, int b);
int OverloadFunc(int a, double c);
double OverloadFunc(double c, double d); // 戻り値が違うパターン
int main(void) {
// 多重定義したOverloadFuncを呼び出す
std::cout << OverloadFunc(1) << "\n";
std::cout << OverloadFunc(1, 3) << "\n";
std::cout << OverloadFunc(1, 5.5) << "\n";
std::cout << OverloadFunc(5.5, 2.1) << "\n";
return 0;
}
int OverloadFunc(int a) {
return a;
}
int OverloadFunc(int a, int b) {
return a + b;
}
int OverloadFunc(int a, double c) {
return a + round(c); // roundで四捨五入
}
double OverloadFunc(double c, double d) {
return c + d;
}
実行結果
1
4
7
8.6
Discussion