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,看不到主函数,所有东西都要在不同类里的成员函数里实现,涉及到两个类之间交互比如调用对方的函数 时经常出错,好纠结。 展开
一、 如何在B类的成员函数中获得a改变后的值,我在B类里创建A的副本无法得到a改变后的值。
二、如何用A的成员函数改变b的值。
初学vc,看不到主函数,所有东西都要在不同类里的成员函数里实现,涉及到两个类之间交互比如调用对方的函数 时经常出错,好纠结。 展开
3个回答
展开全部
一、当A,B两个对象产生了以后,把A的指针放到B中保存起来。以后,B就从这个A的指针得到A的地址,从中获得a数据就可以了。A的指针实际上指向的就是A的。副本是个克隆体,只能保持克隆时候的值,无法保留改变后的值(除非重新克隆)。
二、和上面一样,把B的指针保存到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;
展开全部
如果不破坏C++面向对象的理念,定义静态成员变量是一种解决方案。
追问
变量是和edit控件绑定的,加上static修饰编译出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置全局变量。
追问
我开始也是这样做的,不过到后来好多都要改,而且这样不符合c++的面向对象的规范啊 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询