- 関数オーバーロードの主な用途として、コンパイル時ポリフォーリズムを行うことが挙げられる
- 1つの名前をオーバーロードすることで、複数あるデータの方の種類などに対応できる
- 関数をたくさん作り、それぞれ別の名前をつける必要がない
study29.cpp
#include <iostream>
using namespace std;
int myabs( int );
long myabs( long );
double myabs( double );
int main() {
cout << "-10の絶対値:" << myabs(-10) << endl << endl;
cout << "-10Lの絶対値:" << myabs(-10L) << endl << endl;
cout << "-10.01の絶対値:" << myabs(-10.01) << endl << endl;
}
int myabs( int n ) {
cout << "整数用のmyabs()" << endl;
return n<0 ? -n : n;
}
long myabs( long n ) {
cout << "長整数用のmyabs()" << endl;
return n<0 ? -n : n;
}
double myabs( double n ) {
cout << "倍精度浮動小数点数用のmyabs()" << endl;
return n<0 ? -n : n;
}
g++ -o study29 study29.cpp
実行
$ ./study29
整数用のmyabs()
-10の絶対値:10
長整数用のmyabs()
-10Lの絶対値:10
倍精度浮動小数点数用のmyabs()
-10.01の絶対値:10.01
引用・参考はこちら
独習C++ 第4版
https://www.amazon.co.jp/dp/4798119768