关于网友提出的“ 两个类调用一个函数时,类名参数类型,应该怎么写?”问题疑问,本网通过在网上对“ 两个类调用一个函数时,类名参数类型,应该怎么写?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 两个类调用一个函数时,类名参数类型,应该怎么写?
描述: double mainT(CgameDlg &pParam)
{
pParam.m_pDib();
}
以上函数,要是两个类里面调用的话,应该参数,怎么改才行呢?
===========================================
void fuan(CP3 &pParam)
{
mainT(pParam);
}
void fuan(CgameDlg &pParam)
{
mainT(pParam);
}
解决方案1: double mainT(CDialog &pParam,int x,int y)
{
CgameDlg *pDlg = (CgameDlg *) &pParam;
COLORREF cr=pDlg->m_pDib->GetPixel(i,j)
...
}
1.CgameDlg 和 CP3 成员变量的位置和顺序必须一致,(CP3可以到CgameDlg抄一份)
2.mainT调用时,只能使用一个路径CgameDlg *pDlg = (CgameDlg *) &pParam;pDlg->m_pDib;
3.如果要使用类型不同的方式,那么只能使用回调函数,没什么意义
解决方案2: double mainT(CDialog* pParam)
void fuan(CP3 &pParam)
{
mainT((CDialog*)pParam);
}
void fuan(CgameDlg &pParam)
{
mainT((CDialog*)pParam);
}
解决方案3:
可以强制转换成CgameDlg 的指针!
解决方案4: double mainT(CgameDlg &pParam)
->
double mainT(CDialog& pParam)
或者用参数改用CDilaog* 指针
以上介绍了“ 两个类调用一个函数时,类名参数类型,应该怎么写?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3320418.html