Cpp クラス オーバーロード 新しいページはコチラ
提供: yonewiki
(→クラス オーバーロード) |
(→8行目~11行目(ヘッダファイル部)) |
||
103行: | 103行: | ||
ここが、多重定義(Overload:オーバーロード)部分で、同じ名前のメンバ関数がズラッと書かれていますが、それぞれ異なる型の引数を受け取るように定義されています。これでも対応している引数の取り方は少ない方です。もっともっといろんな引数を受け渡したいパターンもあると思います。もっともっと汎用性を持たせるためには、後で紹介する予定のSTL(スタンダードテンプレートライブラリ)という技術を使う方法もあります。一個人が作るコードが、そこまで汎用性をもったクラスである必要は低いかもしれませんが、理解しておかなければ、いざという時につぶしが効かないということを心にして、こういったプログラミングの学習は進めて行くべきだと思います。 | ここが、多重定義(Overload:オーバーロード)部分で、同じ名前のメンバ関数がズラッと書かれていますが、それぞれ異なる型の引数を受け取るように定義されています。これでも対応している引数の取り方は少ない方です。もっともっといろんな引数を受け渡したいパターンもあると思います。もっともっと汎用性を持たせるためには、後で紹介する予定のSTL(スタンダードテンプレートライブラリ)という技術を使う方法もあります。一個人が作るコードが、そこまで汎用性をもったクラスである必要は低いかもしれませんが、理解しておかなければ、いざという時につぶしが効かないということを心にして、こういったプログラミングの学習は進めて行くべきだと思います。 | ||
+ | === '''102行目~131行目(クラスプログラム部)''' === | ||
+ | そうして、具体的な処理内容を記述します。ここではint型の2つの引数を受け取る関数はint型の配列関数にしてint型の配列を全て足し合わせる関数を読んでいます。m_fSum関数はすべてのオーバーロード関数から呼び出されるプライベートなクラスです。int型配列を受け取る関数はそのままm_Sumへ受け流す感じになり、float型はint型に変換+小数点以下の切り上げという方法を実施して足しています。float型配列を受け取る関数はそれぞれをint型に変換しつつ、受け渡すためのint配列を構成します。 | ||
− | + | ||
+ | このように異なる引数を受け取った関数がよりよい機能であるためにオーバーロードを行います。よくみかけるものです。可変長の引数を受け取る関数もこの仕組みを使えば作成可能です。 | ||
+ | |||
+ | |||
+ | まぁでも疲れる。まじで疲れる。このサンプルプログラムも疲れる。そういうことです。あんまり使いたくないなぁ。最低限の技術しか使おうとしない自分のような、さぼりプログラマには敷居が少し高いな。飲食店の入り口がマンションのドアみたいになっている店くらい敷居が高い。 | ||
[[C PlusPlus#C++からの技術|C++]]に戻る | [[C PlusPlus#C++からの技術|C++]]に戻る |