C++ 在我的程序中避免全局变量

C++ 在我的程序中避免全局变量,c++,global-variables,C++,Global Variables,我的程序中有一些全局变量,我试图避免它们,但我不知道如何 这是我的节目: 有没有其他方法可以避免这些变量 任何其他的注释都是值得注意的在onMouse函数中使用STATIC for i_mouse和depthimagemouse(您只在1个函数中使用它)和#define for常量变量如何? 我认为这对你来说是一个很好的解决方案。我认为你有多种可能性 创建一个类并将函数和全局变量放入其中(首选方式) 如果您只关心名称冲突,您可以使用 如果您的全局变量仅用于一个函数,请将其声明为该函数中的静态变

我的程序中有一些全局变量,我试图避免它们,但我不知道如何

这是我的节目:

有没有其他方法可以避免这些变量


任何其他的注释都是值得注意的

在onMouse函数中使用STATIC for i_mouse和depthimagemouse(您只在1个函数中使用它)和#define for常量变量如何?
我认为这对你来说是一个很好的解决方案。

我认为你有多种可能性

  • 创建一个类并将函数和全局变量放入其中(首选方式)
  • 如果您只关心名称冲突,您可以使用
  • 如果您的全局变量仅用于一个函数,请将其声明为该函数中的静态变量(其值将在调用之间保留)

  • 封装和实例化=>将全局变量封装在类中,作为实例成员,将使用它的函数作为该类的实例成员,并在主函数中创建一个实例。避免使用全局变量!!!那么,为什么要定义它们呢?@Mohammaddrezapanahi我的意思是我将变量声明为全局变量的方式,而不是变量本身。我不明白为什么这个问题被否决了。ROS_OPENCV意识到他的程序技术可能不好,他想改进它。当他为它辩护时,我会理解否决票…
    static
    意味着与全局变量相同的问题:函数仍然不可重入。您只回答可见性问题,而不回答存储持续时间和功能重新进入。所以,若要避免全局变量,不要使用static,唯一可取的方法是解决方案1。避免使用其他两种解决方案,只需屏蔽或解决一些有关全局变量的问题