C++ 无法访问 类 之间的 public 变量

C++ Can't access public variable between classes

我一直在拼命尝试在 C++ 中的两个 类 之间共享一个 public 变量,但我似乎无法掌握它。我试过 getters 和 setters 并直接将其作为静态变量调用,但什么也没有。

这是我试过的:

DataGrabber.h

#pragma once

class DataGrabber {
    public:
        static float temp;

        void readProcess(){
            temp = 1.2;
        }
 }

Particle.h

#pragma once

class Particle {
     public:
           void update() {
                float x = DataGrabber::temp; 
           }

然后是:

DataGrabber.h

#pragma once

class DataGrabber {
    public:
        float temp;

        float get(){return temp;}

        void readProcess(){
            temp = 1.2;
        }
 }

Particle.h

#pragma once

class Particle {
     public:
           void update() {
                float x = DataGrabber.get(); 
           }

它们都被#include 在另一个主程序中 header, testApp.h.

具体问题是什么?你如何使用这些 类?

无论如何,您的 getter 代码存在几个问题。

首先,如果你使变量public为什么要使用getter?如果您要进行此设计,则应将变量隐藏为私有,以防止直接修改。

其次,如果它是一个简单的成员变量,您应该通过传递给函数的 object 来访问它:

void update(DataGrabber& grabber) {
    float x = grabber.get();
}

在这种情况下,您必须在未显示的主代码中创建此 object。

如果您想改用静态变量,请查看单例模式,但我建议您不要这样做,除非没有更好的选择来解决您的具体问题。

最后,您应该在 header 文件中 #include 所有直接依赖项。您的 Particle 依赖于 DataGrabber,因此您应该从 Particle.h 中包含它的 header。或者,至少,您应该添加前向声明。