[C++] 多个模块实时公用一个类中的成员变量

简介: [C++] 多个模块实时公用一个类中的成员变量

📢 前言

      最近在多个类公用一个变量时出现了一个问题,我的方法就是新建一个头文件,将公用变量放到头文件中,然后各个类调用这个头文件,但是会出现变量不公用的情况,比如有一个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. 静态变量的方法


戳戳小手帮忙点个免费的赞和关注吧,嘿嘿
目录
相关文章
|
4天前
|
设计模式 安全 算法
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
14 0
|
5天前
|
C语言 C++
【C++】string类(常用接口)
【C++】string类(常用接口)
13 1
|
2天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
7 1
|
2天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0
|
2天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
12 0
【C++】string学习 — 手搓string类项目
|
3天前
|
Java C++ Python
【C++从练气到飞升】06---重识类和对象(二)
【C++从练气到飞升】06---重识类和对象(二)
|
3天前
|
编译器 C++
【C++从练气到飞升】06---重识类和对象(一)
【C++从练气到飞升】06---重识类和对象(一)
|
3天前
|
存储 编译器 C语言
【C++从练气到飞升】02---初识类与对象
【C++从练气到飞升】02---初识类与对象
|
4天前
|
设计模式 算法 编译器
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]
9 0
|
4天前
|
算法 C++
【C++入门到精通】condition_variable(条件变量)C++11 [ C++入门 ]
【C++入门到精通】condition_variable(条件变量)C++11 [ C++入门 ]
9 0