📢 前言
最近在多个类公用一个变量时出现了一个问题,我的方法就是新建一个头文件,将公用变量放到头文件中,然后各个类调用这个头文件,但是会出现变量不公用的情况,比如有一个HImage类型的图像变量A,在主程序中对原图进行图像预处理之后得到A,而别的类调用这个图像变量A时会出现不是原图预处理之后的图像,而是初始变量,也就是别的类调用的并不是最新的图像变量A。下面我记录了两种方法来实现多个类公用一个变量:
1. 全局变量的方法
⑴ 新建类MS_VisionGlobal
⑵ 在类MS_VisionGlobal中声明一个int类型的成员变量m_value
⑶ 在MS_VisionGlobal.h
头文件末尾(类MS_VisionGlobal的最下方)实例化一个对象visionGlobal,并用extern声明实例化对象的作用范围
struct MS_VisionGlobal { int m_value; }; extern MS_VisionGlobal visionGlobal;
ps:extern作用是其声明的函数和变量可以在本模块活其他模块中使用
⑷ 声明完之后,其他模块类包含MS_VisionGlobal.h
,就可以通过m_visionGlobal.(类成员变量) – m_visionGlobal.m_value的方式实时调用更新类m_visionGlobal中的成员变量了。
主程序和其他类就可以通过theApp.hv_WindowHandle形式调用该变量了
其他模块调用:
//先包含其头文件 visionGlobal.m_value;
2. 静态变量的方法
戳戳小手帮忙点个免费的赞和关注吧,嘿嘿 |