在非类函数中如何使用类的成员

来源:互联网 发布:php正则表达式匹配url 编辑:程序博客网 时间:2024/05/16 01:17

在不属于类成员的函数中是不能直接使用类的成员函数的,可以有如下方法解决:

1、传递类实例指针

      这个方法简单实用。如下代码,类CTestDlg的成员函数OnButton中调用了非类成员函数noClassFun,而在noClassFun又需要使用成员函数UpdateData和成员变量m_type,于是传入类CTestDlg的指针,即可访问。

void CTestDlg::OnButton() {  noClassFun(this);}void noClassFun(CTestDlg *pDlg){  pDlg->UpdateData(TRUE);  pDlg->m_type;}

2、获取类实例指针,然后通过其访问相关成员

     需要注意的是,在使用的时候应该注意获取得到的指针的类型。如果访问标准MFC的相关类成员,获取后不经过强制转换就可以访问。但是如果是自己定义的类成员需要转换成自己的类才行(如下面的CTestDlg的m_type成员)。

void CTestDlg::OnButton() {  noClassFun(void);}void noClassFun(void){  //获取需要的类的指针,这里获取了窗口类的指针  AfxGetMainWnd()->UpdateData(TRUE);  //访问自己的类成员需要转换为自己定义的类  ((CTestDlg*)AfxGetMainWnd())->m_type;}

注:获取各种句柄,请参考http://blog.csdn.net/okvee/article/details/3655162


原创粉丝点击