Cpp クラス オーバーロード 新しいページはコチラ
提供: yonewiki
(ページの作成:「C++に戻る <table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> <tr>...」) |
(→クラス オーバーロード) |
||
11行: | 11行: | ||
<br /> | <br /> | ||
== '''クラス オーバーロード''' == | == '''クラス オーバーロード''' == | ||
+ | 同じメンバ関数名に対して引数の異なるモノを作成することをオーバーロードするとか、多重定義をすると言います。受け取った引数によって処理を変えたり、少しだけ引数を加工して、結局は共通のプログラムを動かすための架け橋にしたりすることが出来ます。いろいろな引数で対応して便利な機能を提供することが出来ます。これはコンストラクタに対しても行えるモノです。 | ||
+ | |||
+ | |||
+ | 例えば、以下のようになります。 | ||
+ | |||
+ | <span style="color: #ffffff; background-color: #555555; padding: 0px 5px 0px 5px; display: inline-block;">cpp <span>(</span>COverloadSum.h<span>)</span></span><!-- padding 上 右 下 左--> | ||
+ | <syntaxhighlight2 lang="cpp" line> | ||
+ | class COverloadSum{ | ||
+ | private: | ||
+ | int m_iSum; | ||
+ | int* m_piData; | ||
+ | void m_fSum(int* iArgVal); | ||
+ | |||
+ | public: | ||
+ | void COverloadSum(int iArgVal1, int iArgVal2); | ||
+ | void COverloadSum(int* piArgVal); | ||
+ | void COverloadSum(float fArgVal1, fArgVal2); | ||
+ | void COverloadSum(float* pfArgVal); | ||
+ | int Get(); | ||
+ | }; | ||
+ | </syntaxhighlight2> | ||
+ | <span style="color: #ffffff; background-color: #555555; padding: 0px 5px 0px 5px; display: inline-block;">cpp <span>(</span>COverloadSum.cpp<span>)</span></span><!-- padding 上 右 下 左--> | ||
+ | <syntaxhighlight2 lang="cpp" line> | ||
+ | #include "COverloadSum.h" | ||
+ | |||
+ | void COverloadSum::COverloadSum(int iArgVal1, int iArgVal2){ | ||
+ | m_piData = new int[2]; | ||
+ | m_piData[0] = iArgVal1; | ||
+ | m_piData[1] = iArgVal2; | ||
+ | m_fSum( m_piData ); | ||
+ | } | ||
+ | |||
+ | void COverloadSum::COverloadSum(int* piArgVal){ | ||
+ | m_fSum( m_piData ); | ||
+ | } | ||
+ | |||
+ | void COverloadSum::COverloadSum(float fArgVal1, float fArgVal2){ | ||
+ | ito | ||
+ | } | ||
+ | |||
+ | void COverloadSum::COverloadSum(float* pfArgVal){ | ||
+ | } | ||
+ | |||
+ | void mf_Sum(int* piArgVal){ | ||
+ | for(int iScan = 0; i < sizeof(int)/sizeof(piArgVal)){ | ||
+ | m_iSum = m_iSum + piArgVal[iScan]; | ||
+ | } | ||
+ | } | ||
+ | int Get(){ | ||
+ | return m_iSum; | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight2> | ||
[[C PlusPlus#C++からの技術|C++]]に戻る | [[C PlusPlus#C++からの技術|C++]]に戻る |