您的位置:程序门 -> vc/mfc -> 界面



类的成员函数访问类的成员变量的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


类的成员函数访问类的成员变量的问题[已结贴,结贴人:yuruibo123]
发表于:2007-07-20 12:26:25 楼主
我用mfc产生了一个对话框类,在cxxdlg.h中声明了一个成员变量,但在类的函数中为什么有的函数能访问,有的函数访问不了?
具体代码:
    cxxdlg.h中

    class   cxxdlg:public   cdialog
{
        private:   int   a;
}

cxxdlg.cpp

初始化后,在cxxdlg::onrclicklist()里访问a,程序正常,但在cxxdlg::onitemexpandingtree()里访问a,程序编译通过,执行后出错。请问问题出在哪里?
发表于:2007-07-20 12:28:421楼 得分:4
仔细检查上下文代码!
发表于:2007-07-20 12:31:342楼 得分:4
你看一下在哪里调用的onitemexpandingtree(),语法来讲是可以访问   的
发表于:2007-07-20 13:03:443楼 得分:4
应该是可以访问的,
onitemexpandingtree()里有没有定义局部变量a?
发表于:2007-07-20 14:34:264楼 得分:0
谢谢各位,我仔细试验了几次,我把a初始化为2,在onitemexpandingtree()里,若对a赋值则程序运行后中止;我不对a重新赋值,添加语句int   b   =   a,打印b得4220892,程序不会终止,难道不能对a再赋值?可是在cxxdlg::onrclicklist()里可以赋值的,这些函数里都没有定义局部变量a,怎么回事?
发表于:2007-07-20 14:43:495楼 得分:4
你在onitemexpandingtree()里的a上右键看下a的def在哪儿
发表于:2007-07-20 14:51:416楼 得分:0
在onitemexpandingtree()里的a上右键看下a的def是正确的,指向了cxxdlg.h中的   private:   int   a;
发表于:2007-07-20 15:15:547楼 得分:4
理论上讲是可以访问的.

你说   不对a重新赋值,添加语句int   b   =   a,打印b得4220892,程序不会终止.这个结果是你要的吗??怎么感觉象是随机的数字啊?

在onitemexpandingtree()函数的a   处设个断点,看下它的值是多少,看下能不能运行到此.
发表于:2007-07-20 15:52:398楼 得分:0
谢谢大家,解决了,来回倒腾了几次,改来改去,又改回原来的,又可以运行了,现在也不知道怎么回事,反正能运行了。不过很感谢大家!


快速检索

最新资讯
热门点击