Cpp クラス オーバーロード 新しいページはコチラ
提供: yonewiki
				
								
				
				
																
				
				
								
				 (→102行目~131行目(クラスプログラム部))  | 
			|||
| 5行: | 5行: | ||
<tr>  | <tr>  | ||
<td style="width:1px;"></td>  | <td style="width:1px;"></td>  | ||
| − | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ クラス オーバーロード</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td>  | + | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) クラス オーバーロード</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td>  | 
</tr>  | </tr>  | ||
</table>  | </table>  | ||
| 32行: | 32行: | ||
public:  | public:  | ||
     void COverloadSum(int iArgVal1, int iArgVal2);  |      void COverloadSum(int iArgVal1, int iArgVal2);  | ||
| − |      void COverloadSum(int* piArgVal);  | + |      void COverloadSum(int* piArgVal, int iSizeArgVal);  | 
| − |      void COverloadSum(float fArgVal1, fArgVal2);  | + |      void COverloadSum(float fArgVal1, float fArgVal2);  | 
| − |      void COverloadSum(float* pfArgVal);  | + |      void COverloadSum(float* pfArgVal,int iSizeArgVal);  | 
     int  Get();  |      int  Get();  | ||
};  | };  | ||
| 49行: | 49行: | ||
     m_piData[0] = iArgVal1;  |      m_piData[0] = iArgVal1;  | ||
     m_piData[1] = iArgVal2;  |      m_piData[1] = iArgVal2;  | ||
| − |      m_fSum( m_piData, 2);  | + |      m_fSum( m_piData, (int)sizeof(int)*2);//sizeof演算子の戻り値はsize_t型=unsigned int型です。符号を無視するキャストなので安全なキャスト。2,147,483,647より大きな数にならないこと  | 
}  | }  | ||
| 61行: | 61行: | ||
     m_piData[1] = ceil(fArgVal2);  |      m_piData[1] = ceil(fArgVal2);  | ||
| − |      m_fSum( m_piData, 2);  | + |      m_fSum( m_piData, (int)sizeof(float)*2);  | 
}  | }  | ||
void COverloadSum::COverloadSum(float* pfArgVal, int iSizeArgVal){  | void COverloadSum::COverloadSum(float* pfArgVal, int iSizeArgVal){  | ||
| − |      for(int iScan = 0; i <  iSizeArgVal / sizeof (float) ; iScan++){  | + |      for(int iScan = 0; i <  iSizeArgVal / (int)sizeof (float) ; iScan++){  | 
         m_piData[iScan] = pfArgVal[iScan];  |          m_piData[iScan] = pfArgVal[iScan];  | ||
     }  |      }  | ||
| − |      m_fSum( m_piData,   | + |      m_fSum( m_piData, iSizeArgVal);  | 
}  | }  | ||
void mf_Sum(int* piArgVal, int iSizeArgVal){  | void mf_Sum(int* piArgVal, int iSizeArgVal){  | ||
| − |      for(int iScan = 0; i < iSizeArgVal / sizeof(int) ; iScan++){  | + |      for(int iScan = 0; i < iSizeArgVal / (int)sizeof(int) ; iScan++){  | 
         m_iSum = m_iSum + piArgVal[iScan];  |          m_iSum = m_iSum + piArgVal[iScan];  | ||
     }  |      }  | ||
| 93行: | 93行: | ||
     int piDataArr[4] = { 3, 7, 9, 10 };  |      int piDataArr[4] = { 3, 7, 9, 10 };  | ||
| − |      COverloadSum objCOverloadSum_pInt(piDataArr, sizeof(piDataArr));  | + |      COverloadSum objCOverloadSum_pInt(piDataArr, (int)sizeof(piDataArr));  | 
     float pfDataArr[5] = { 3.2, 5.4, 8.2, 13.4, 42.5 };  |      float pfDataArr[5] = { 3.2, 5.4, 8.2, 13.4, 42.5 };  | ||
| − |      COverloadSum objCOverloadSum_pFloat(pfDataArr, sizeof(pfDataArr));  | + |      COverloadSum objCOverloadSum_pFloat(pfDataArr, (int)sizeof(pfDataArr));  | 
     printf("IntInt=%d, pInt=%d, FloatFloat=%d, pFloat=%d,\n",  |      printf("IntInt=%d, pInt=%d, FloatFloat=%d, pFloat=%d,\n",  | ||
| 111行: | 111行: | ||
<syntaxhighlight2 lang="cpp">  | <syntaxhighlight2 lang="cpp">  | ||
     void COverloadSum(int iArgVal1, int iArgVal2);  |      void COverloadSum(int iArgVal1, int iArgVal2);  | ||
| − |      void COverloadSum(int* piArgVal);  | + |      void COverloadSum(int* piArgVal, int iSizeArgVal);  | 
| − |      void COverloadSum(float fArgVal1, fArgVal2);  | + |      void COverloadSum(float fArgVal1, float fArgVal2);  | 
| − |      void COverloadSum(float* pfArgVal);  | + |      void COverloadSum(float* pfArgVal,int iSizeArgVal);  | 
</syntaxhighlight2>  | </syntaxhighlight2>  | ||