2012/06/20

C++ オーバーロード overloading

同じ名前の関数を複数定義して、引数の数や型の違いで処理を分けることができる。オブジェクト指向のポリモーフィズム。これを使うことで、スムーズに分岐させることができ、プログラムの保守性が上がる。

関数のオーバーロード

#include <iostream>
//クラス
class Aclass{
public:
  Aclass();
  void method(double n);
  void method(double n1, double n2);//overloading
private:
  double PI ;
};
Aclass::Aclass(){
  PI = 3.141592653;
}
//メンバ関数
void Aclass::method(double n){
  std::cout << "円の面積: " << n*n*PI << std::endl;
}
//メンバ関数 overload
void Aclass::method(double n1, double n2){
  std::cout << "円柱の体積: " << n1*n1*PI*n2 << std::endl;
}

//メイン関数
int main(void){
  Aclass oAclass;
  oAclass.method(10);//引数1つ
  oAclass.method(10, 100);//引数2つ
  return 0;
}
引数1つだと、半径とみなし、2つだと半径と高さとみなして処理する。
円の面積: 314.159
円柱の体積: 31415.9


C++言語 Meadow & MinGW GCC 目次