不知道我这样命名这个问题清楚不~
MFC里面遇到一个问题,我把它简化为一个控制台程序:
A类定义了B类的对象,B类定义了A类的对象的指针(this),并想通过它访问A类的成员函数
解决代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <iostream> using namespace std; class A; class B { public: A* pa; void funb(); }; class A { public: B b; A() { b.pa = this; } void funa() { cout << "执行funa函数" << endl; } }; void B::funb() { pa->funa(); } void main() { A a; a.b.funb(); } |
运行结果:
| 执行funa函数 Press any key to continue_ |
找到了,在MFC中此问题的处理办法:
假设MFC工程为Test
在CTestDlg.h里面添加A.h,构造A类的一个对象
在A类头文件中增加一个CTestDlg的对象的指针,在头文件里A类类名前加class CTestDlg的声明,然后再在A.cpp里面加(注意顺序!):
#include “Test.h”
#include “A.h”
#include “TestDlg.h”


哎~~我看不懂哦
可以给我说下,你怎么找到我的博客的吗?
汗,你那运行结果现实黑色的,我还以为是控制台呢。。。。
日了,原来是伪控制台。。。。
哈哈,能少用一张图片就不用图片啦!
汗。。。节约帝。。。 :高兴:
节约一张图片,可以少砍伐一棵大树!
下学期 才开学这东东 还是先自学
哟
C++基础要学很久才能开始学窗口
C++不是一般的难啊!“能少用一张图片就不用图片啦!”图片很占资源?图片多了很难加载?
C++不难,难的是计算机的那些理论
图片很占空间,而且附件多了不好搬家
你是怎么设置回复我的评论给我发邮件的呢?我的博客好像不行啊!
看你主机支不支持啰
我用的是虚拟主机,现在在试用采用插件的方式呢!
我也用的虚拟主机啊
linux主机