LIFE LOG(ここにはあなたのブログ名)

あつあつ備忘録

ソフトやハード、時にはメカの備忘録をまとめていきます

【C++】オーバーロード

f:id:AtsuyaKoike:20190524095847p:plain:w300

  • 関数オーバーロードの主な用途として、コンパイル時ポリフォーリズムを行うことが挙げられる
  • 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

引用・参考はこちら

f:id:AtsuyaKoike:20190524100759j:plain:w200
独習C++ 第4版 https://www.amazon.co.jp/dp/4798119768