vc++ 不同类之间如何传值

在A类里有成员变量a,通过同属A类的edit和button控件可改变A的值。在B类里有成员变量b,现在问题是:一、如何在B类的成员函数中获得a改变后的值,我在B类里创建A... 在A类里有成员变量a,通过同属A类的edit和button控件可改变A的值。在B类里有成员变量b,现在问题是 :
一、 如何在B类的成员函数中获得a改变后的值,我在B类里创建A的副本无法得到a改变后的值。
二、如何用A的成员函数改变b的值。
初学vc,看不到主函数,所有东西都要在不同类里的成员函数里实现,涉及到两个类之间交互比如调用对方的函数 时经常出错,好纠结。
展开
 我来答
cooke1234
2013-03-19 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3608万
展开全部
一、当A,B两个对象产生了以后,把A的指针放到B中保存起来。以后,B就从这个A的指针得到A的地址,从中获得a数据就可以了。A的指针实际上指向的就是A的。副本是个克隆体,只能保持克隆时候的值,无法保留改变后的值(除非重新克隆)。
二、和上面一样,把B的指针保存到A里面。操作指针指向的地址就可以了。
更多追问追答
追问
具体怎么做的,在B的成员函数中 A *aa; 再使用aa->a吗?
我这样做还是不行啊。这似乎还是一个副本。
我不用A、B两个类生成对象,程序会自动生成吗?如果是又怎么获得地址呢?
追答
是使用aa->a的方式。

先得到对象的指针
A a; A * pa = &a; 或者 A * pa = new a();
B也用上面任一方式得到指针。(采用第一种方式的时候,注意a的作用域,a消失后pa就无效了)
由B修改A的内容:
1) A的指针保存到b里 : pb->m_pa = pa;
2) b的成员函数中修改a: m_pa->a = 123;
汪裕峻
2013-03-19 · TA获得超过262个赞
知道答主
回答量:74
采纳率:0%
帮助的人:58万
展开全部
如果不破坏C++面向对象的理念,定义静态成员变量是一种解决方案。
追问
变量是和edit控件绑定的,加上static修饰编译出错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HapDayannig
2013-03-19 · 超过31用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:94.8万
展开全部
设置全局变量。
追问
我开始也是这样做的,不过到后来好多都要改,而且这样不符合c++的面向对象的规范啊 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式