16.関数のオーバーロード
ポリモフィズム
オブジェクト指向言語では、手続きが他言語には内重要な概念の一つに「ポリモフィズム」があります
この技術を使えば、ある識別子が指す参照先が複数の動作を状況に合わせて実行します.
それぞれ、まったく異なる関数として実装することができるため
https://dict.hjenglish.com/jp/jc/%E6%9F%94%E8%BB%9F
同じような動作をする関数で、引数の型や数を柔軟に設定することができます
関数名が同じでも、シグネチャが異なる場合はオーバーロードできるという仕組みになっています
こうすれば、C言語のように似たような動作をする関数が引数の違いのために
別の名前で定義されるという面倒な事態を避けることができます
ただし、関数のオーバーロードは引数の型、または受け取る数が異なるというのが条件です
オーバーロードは、数学関数など多くの型に対応したい関数に有効です
コンストラクタのオーバーロード
これは、実用的なクラスには欠かせないもので
また、無意味にオーバーロードせず、必要な限りのオーバーロードにするのがポイントです
曖昧なオーバーロード
オーバーロード関数を作成していれば、誰でも気づくことでしょうが
関数 Kitty() は double 型と float 型のいずれかを受け取ります