
VC++中变量引用的问题?
CSetup.h中:ClassCSetup:publicCDialog{public:intvar1;......}CSetup.cpp中:voidCSetup:OnOK...
CSetup.h中:
Class CSetup:public CDialog
{
public :
int var1;
......
}
CSetup.cpp中:
void CSetup:OnOK()
{
var1=5;
......
}
在主对话框中:
CMainDlg.h:
#include "CSetup.h"
Class CMainDlg:public CDialog
{
CSetup SDlg;
......
}
CMainDlg.cpp:
void CMainDlg::OnPaint()
{
......
int x=SDlg.var1;
......
}
从主对话框调用Setup对话框,OK之后,var1=5。但在CMainDlg::OnPaint()中看SDlg.var1,为什么SDlg.var1的值不是5,而是一个任意值呢? 展开
Class CSetup:public CDialog
{
public :
int var1;
......
}
CSetup.cpp中:
void CSetup:OnOK()
{
var1=5;
......
}
在主对话框中:
CMainDlg.h:
#include "CSetup.h"
Class CMainDlg:public CDialog
{
CSetup SDlg;
......
}
CMainDlg.cpp:
void CMainDlg::OnPaint()
{
......
int x=SDlg.var1;
......
}
从主对话框调用Setup对话框,OK之后,var1=5。但在CMainDlg::OnPaint()中看SDlg.var1,为什么SDlg.var1的值不是5,而是一个任意值呢? 展开
展开全部
你在主对话框的什么位置调用了SetUp对话框,若在Onpaint函数执行调用的,那其值应该是任意值了。
执行过SetUp对话框的OnOk函数之后,在主对话框中看到的值应该是5。
因为SetUp的对象作为主对话框的成员函数,所以只有在主对话框退出时才会无效,
引起调用SetUp的析构函数,这样会出错(非法操作),而不是任意值了。
执行过SetUp对话框的OnOk函数之后,在主对话框中看到的值应该是5。
因为SetUp的对象作为主对话框的成员函数,所以只有在主对话框退出时才会无效,
引起调用SetUp的析构函数,这样会出错(非法操作),而不是任意值了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询