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