问题描述
- mfc,c++,不同类之间的变传递
-
MFC程序中, 不同类之间的变量是怎么传递的?比如我有两个类:
1.a,h/a,cpp
2.b,h/b,cpp
现在有两种情况:
情况1:
在a,cpp里定义了一个 double 变量叫做 tempvalue, 经过一些处理之后,我想把
tempvalue的值传到b,cpp使用,那么该如何传递此变量?
情况2:
在a,h里定义了一个Public变量叫做 pubvalue, 现在同样想把此变量传到
b,cpp里,怎么该怎么办?
可不可以举例说明?
解决方案
一般的写法:
1:在a.cpp里定义了一个 double 变量叫做 tempvalue,如果你不是在函数中定义的,那么tempvalue是全局变量,b.cpp 中 写上extern double tempvalue 以后就可以直接使用tempvalue了。你也可以让a提供一个静态函数,返回这个全局对象tempvalue,b需要包含a.h以后直接调用。
2:在a.h里定义了一个Public变量叫做 pubvalue,那么pubvalue是a类的成员对象,如果b想用a.h里定义的pubvalue,那么b必须能拿到a的对象才能使用pubvalue。如果pubvalue是静态的那可以在a类中提供一个静态函数。pubvalue隶属于a类对象,每个a对象的pubvalue都是独立的。不知道这么说你能不能明白。b需要拿到a对象,否则是拿不到a的成员变量的,如果a只有一个对象,或者你只关心某个a对象的pubvalue,那么你可以在a.cpp中建立一个全局对象类似于tempvalue,然后b像方法1一样使用。
解决方案二:
有很多办法,比如全局变量;在对方对象中保持一个指向自己的指针,通过它访问成员变量;使用类的静态变量等等。
解决方案三:
第一种、 在a.cpp中 定义的变量tempvalue 是全局的。 在b.cpp 中 写上extern double tempvalue 。
第二种、 把变量tempvalue 处理完了之后,写入到一个文件。 在b.cpp中读取那个文件 进行取值
第三种、使用socket通信 ,把处理完之后值 发送出去 。在b.cpp中接收 (a.cpp 和 b.cpp 要同时运行)
解决方案四:
第一种、 在a.cpp中 定义的变量tempvalue 是全局的。 在b.cpp 中 写上extern double tempvalue 。
第二种、 把变量tempvalue 处理完了之后,写入到一个文件。 在b.cpp中读取那个文件 进行取值
第三种、使用socket通信 ,把处理完之后值 发送出去 。在b.cpp中接收 (a.cpp 和 b.cpp 要同时运行)
解决方案五:
可以在a里边的。h文件写上extern 类型 变量名,然后在cpp文件里初始化
如果你要在b里使用它,那么只需要包含a的头文件就可以了