在非类函数中如何使用类的成员
来源:互联网 发布: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
- 在非类函数中如何使用类的成员
- 关于如何在一个类使用函数指针保存其子类的非静态成员函数
- 如何在类中使用成员函数指针数组
- 如何在 Visual C++ 中使用 STL 队列类的该成员函数
- 如何在C代码中调用C++非成员函数
- 在封装的静态成员函数中使用类指针
- 如何输出类的非静态成员函数地址
- 如何输出类的非静态成员函数地址
- 如何输出类的非静态成员函数地址
- 如何输出类的非静态成员函数地址
- 类成员函数参数为该类某个静态成员函数指针,需要在静态函数内使用当前实例的非静态数据成员
- 在类中const成员函数和非const成员函数可以作为重载成员函数同时存在
- 线程的静态函数如何访问类的非静态成员函数或成员变量
- 回调函数中如何调用类中的非静态成员变量或非静态成员函数
- 在类的静态函数成员调用sizeof获取非静态成员长度的问题
- 什么是类的成员函数和非成员函数
- 结合上面的五个例子,对类的静态成员变量和成员函数作个总结: 一。静态成员函数中不能调用非静态成员。 二。非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所
- 如何在类中实现回调成员函数
- 一个程序员的成长
- 点的绘制
- 【读书笔记】《再造卓越》吉姆•柯林斯
- Swig转c++ lib项目到c#可引用的dll
- MyEclipse手工添加spring XML文件模板
- 在非类函数中如何使用类的成员
- swig--在java、C#中调用c++写的DLL(以vs2012配置为例)
- http协议详解
- Tales of Mystery and Imagination——5、The Tell-Tale Heart
- C#中调用dll库(VC编写)
- ftok () 函数介绍
- The Struts dispatcher cannot be found. 使用struts标签时该报错的解决方案
- 数学之路(3)-机器学习(4)-综合应用-候选消除法
- 拷贝构造函数和赋值运算符 区别