您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> 两个类调用一个函数时,类名参数类型,应该怎么写?

两个类调用一个函数时,类名参数类型,应该怎么写?

来源:网络整理     时间:2016/8/16 6:43:15     关键词:

关于网友提出的“ 两个类调用一个函数时,类名参数类型,应该怎么写?”问题疑问,本网通过在网上对“ 两个类调用一个函数时,类名参数类型,应该怎么写?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 两个类调用一个函数时,类名参数类型,应该怎么写?
描述:

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:

引用 5 楼 asasj57 的回复:
double mainT(CDialog& pParam)
这样写后,有以下错误
 error C2039: “m_pDib”: 不是“CDialog”的成员

可以强制转换成CgameDlg 的指针! 解决方案4:

double mainT(CgameDlg &pParam)
->
double mainT(CDialog& pParam)
或者用参数改用CDilaog* 指针


以上介绍了“ 两个类调用一个函数时,类名参数类型,应该怎么写?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3320418.html

相关图片

相关文章