MFC中怎样在一个类中调用另外一个变量?

hehorizon 2014-05-13 10:04:36
在A类中有一个public变量angle,我想在B类中调用这个变量。我在B类中重新定义了A类的一个对象,然后使用rb.a这样的形式调用,但是我发现angle的值根本没有传过来,a 的值是一个随机值,并没有像angle在A类中不断变化的,为什么呢?求指导
...全文
527 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehorizon 2014-05-15
  • 打赏
  • 举报
回复
引用 14 楼 jianwen0529 的回复:
[quote=引用 10 楼 hehorizon 的回复:] [quote=引用 6 楼 jianwen0529 的回复:] 你要用的时候直接 CClassA::angle 就可以了啊! 你这个是传递了一个副本,当然angle变化的时候,你另一变量是不知道的 你得用指针!
因为我的这个变量不是静态类型的,所以这个方法不行啊[/quote] 那把当前this指针传递过去也行的![/quote] 当前this指针??
幻夢之葉 2014-05-15
  • 打赏
  • 举报
回复
引用 10 楼 hehorizon 的回复:
[quote=引用 6 楼 jianwen0529 的回复:] 你要用的时候直接 CClassA::angle 就可以了啊! 你这个是传递了一个副本,当然angle变化的时候,你另一变量是不知道的 你得用指针!
因为我的这个变量不是静态类型的,所以这个方法不行啊[/quote] 那把当前this指针传递过去也行的!
hehorizon 2014-05-14
  • 打赏
  • 举报
回复
引用 11 楼 zhangyonghui2117 的回复:
HWND hwnd= ::FindWindow(NULL,"窗口类名");//得到HWND CxxDlg* pdlg = (CxxDlg*)FromHandle(hwnd); pdlg->angle//这里可以调用了
按照你的方法试了一下,但是出现“FromHandle”: 找不到标识符,“FromHandle”这个函数我之前没有见过,不是很理解,下面是我的代码 double angle; HWND hwnd= ::FindWindow(NULL,"LiFeng_Camera"); LiFeng_Camera* pdlg = (LiFeng_Camera*)FromHandle(hwnd); pdlg->angle;
hehorizon 2014-05-14
  • 打赏
  • 举报
回复
引用 1 楼 ilikehigame 的回复:
肯定的呀,你在B里面定义了一个A的对象,而且没有生成A所以当然是随机数了。你想的到A中变量的值, 应该使用GetParent()去得到A 生成的对象!
这个方法具体是怎么弄的呢?我不太理解
「已注销」 2014-05-14
  • 打赏
  • 举报
回复
HWND hwnd= ::FindWindow(NULL,"窗口类名");//得到HWND CxxDlg* pdlg = (CxxDlg*)FromHandle(hwnd); pdlg->angle//这里可以调用了
hehorizon 2014-05-14
  • 打赏
  • 举报
回复
引用 6 楼 jianwen0529 的回复:
你要用的时候直接 CClassA::angle 就可以了啊! 你这个是传递了一个副本,当然angle变化的时候,你另一变量是不知道的 你得用指针!
因为我的这个变量不是静态类型的,所以这个方法不行啊
hehorizon 2014-05-14
  • 打赏
  • 举报
回复
引用 3 楼 zhangyonghui2117 的回复:
也可用::FindWindow函数得到窗口A指针pa,然后pa->angle,就行了
我发现引用传递太麻烦了,请问你这个方法具体是怎么弄呢?
hehorizon 2014-05-14
  • 打赏
  • 举报
回复
以上各位说的好多我都试过,在B类头文件中包含A类这个不行,指针我不太熟悉所以没有尝试,不过昨晚这个问题已经解决了,是用引用传递解决的,谢谢各位了
buyong 2014-05-14
  • 打赏
  • 举报
回复
angle是A类的一个变量,他的值是属于A的一个对象的。你在其他地方又建了一个新对象,angle当然不一样。 你有一个笔记本,里面有个文件。我买一个和你一样的笔记本,我为什么没有你的文件??
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
你要用的时候直接 CClassA::angle 就可以了啊! 你这个是传递了一个副本,当然angle变化的时候,你另一变量是不知道的 你得用指针!
Symfund 2014-05-14
  • 打赏
  • 举报
回复
晕,一个类可以有多个实例,要想在多个类间共享数据,可以将其数据变量类型定义成公有的静态类型: class CClassA { public: static double angle; // 此处略去几百字 }; static double CClassA::angle = 0.0;
从来不作 2014-05-14
  • 打赏
  • 举报
回复
什么叫“angle的值根本没有传过来”,如果只是B类想使用A类的数据,那么在B类的定义中包含一个A类,肯定是可以的。请楼主贴出代码。
「已注销」 2014-05-14
  • 打赏
  • 举报
回复
也可用::FindWindow函数得到窗口A指针pa,然后pa->angle,就行了
hehorizon 2014-05-13
  • 打赏
  • 举报
回复
GetParent不是获得指定子窗口的父窗口句柄吗?
  • 打赏
  • 举报
回复
肯定的呀,你在B里面定义了一个A的对象,而且没有生成A所以当然是随机数了。你想的到A中变量的值, 应该使用GetParent()去得到A 生成的对象!
内容概要:本文围绕基于CNN-BiLSTM-Attention混合神经网络模型的电力负荷预测展开研究,提出一种结合卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)与注意力机制(Attention)的深度学习框架,并通过Python代码实现高精度的短期与超短期负荷预测。该模型充分利用CNN对局部特征的提取能力,捕捉负荷数据的周期性与趋势性模式;借助BiLSTM对时间序列前后向依赖关系的建模能力,增强对动态变化的感知;并通过Attention机制自适应地聚焦关键历史时刻,提升预测准确性。文详细阐述了数据预处理、模型结构设计、训练流程及超参数调优方法,并在真实负荷数据集上进行了实验验证,结果表明该混合模型相比传统单一模型和其他基准模型具有更优的预测性能,尤其在应对非线性、非平稳负荷波动方面表现突出。; 适合人群:具备一定Python编程能力和机器学习基础,从事电力系统分析、能源管理、智能电网或时序预测相关工作的科研人员、工程师及高校研究生。; 使用场景及目标:①应用于电网调度、电力市场出清、需求响应管理等场景下的精细化负荷预测;②为研究人员提供一套完整的、可复现的深度学习负荷预测代码框架,推动AI技术在能源领域的落地应用;③帮助理解CNN、BiLSTM与Attention模块之间的协同机制及其在时序建模的集成方式。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点掌握数据归一化、滑动窗口构造、模型搭建与训练技巧,并尝试在不同地区、不同季节的负荷数据上进行迁移测试,以深入理解模型泛化能力与调参策略。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧