|
发表于 2018-9-21 08:49:29
|
显示全部楼层
没有装vs, 纯看了一下代码,我有以下几个疑问:
1. // 成员函数 + private成员变量 编译无错误,但没有赋值
CHSCommDlg dlg;
dlg.Set_bHelpOpen(FALSE);
================================
没赋值,是因为此处的dlg, 并不是之前的CHSCommDlg对象。
2. // 成员函数 + private成员变量 编译错误:error C2143: syntax error : missing ';' before '.'
CHSCommDlg.Set_bHelpOpen(FALSE);
========================================================
CHSCommDlg是个类名, 但你这种写法,让系统认为CHSCommDlg是个对象
3. CHSCommDlg::OnBUTTONHelp()代码中,CHelpDlg *pDlg=new CHelpDlg(); , 你是动态new了一个对象,退出此函数后,此对象消失。
4. 大概想了一下你的需求,其实,只要在CHSCommDlg类中,增加一个CHelpDlg类的数据成员,则一切问题就可化解。
另外,从抽象上来说,你这种用法有些问题: 首先,汽车(CHSCommDlg)里面有个轮子(CHelpDlg), 轮子里面却又有个汽车。 何不只让汽车里面有轮子。 就算这二类没有从属上的关系,当两者互相交互时,应该是“get"到一个之前的对象,而不是重新建一个新的对象,因为新对象并不是彼对象。
|
|