及其怪异的现象:类之间部分数据无法传递!

north00 2008-04-11 11:24:59
请教高手,程序一个小时前好好的,突然间两个类之间的部分数据无法传递!
类A中的数据在类B中只看得到部分数据,其他的都是负很大的数

请教高手有什么样的原因会导致这种不怪异情况发生?

谢谢~
...全文
49 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
milaoshu2 2008-04-16
初始化有问题
回复
Eleven 2008-04-16
这两句没有看出什么问题来!
回复
菜牛 2008-04-16
如果只是这两句代码,无论如何也是不会错的。估计实际代码不是这个样子,或者构造函数有什么猫腻。
回复
north00 2008-04-15
[Quote=引用 10 楼 north00 的回复:]


在其他类的函数中调用:

CFirst first;

float b=first.a; //first.a在CFirst 析构之前断点发现都正确,但是死活传不了给b
[/Quote]

为什么我在其他类中这样写:

CFirst* first=new CFirst;

float b=first->a;

first->a能正确显示结果,但是不能将值赋给b了??

请高手解释一下啊??
回复
north00 2008-04-15


在其他类的函数中调用:

CFirst first;

float b=first.a; //first.a在CFirst 析构之前断点发现都正确,但是死活传不了给b



回复
菜牛 2008-04-15
我想楼主你先搞清楚类和对象的概念和区别,这样有助于描述问题。另外也可贴部分代码。因为除了你没有正确理解变量作用域的原因外,一般都是代码有错误了。
回复
north00 2008-04-15
TO:arong1234
兄弟能清楚点嘛?先谢了,我不在行调试,用add watch发现不了什么时候内容被修改了,在这个类结束之前数据都是正确的。。。
回复
arong1234 2008-04-15
需要单步跟踪看看啥代码修改了他们得内容
还有就是代码走查
[Quote=引用 5 楼 north00 的回复:]
请教应该如何检查这个错误??
[/Quote]
回复
north00 2008-04-15
断点调试发现:在类A中运行结束后已经产生了结果,当在类B中就是取不到值!! 并且这个时候查看类A中的结果还在那里!!!
回复
north00 2008-04-15
请教应该如何检查这个错误??
回复
Cricketol 2008-04-12
看具体代码才能做出准确判断
回复
hdqqq 2008-04-12
可能是内存存取越界,导致类数据被意外修改。
回复
Hiiishe 2008-04-12
“其他的都是负很大的数” ,可能此类中你说的“其他”成员变没有被赋过值或初始化。
回复
越界覆盖了吧
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-11 11:24
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……