【发布时间】:2023-03-27 21:46:01
【问题描述】:
我一直在拼命地尝试在 C++ 中的两个类之间共享一个公共变量,但我似乎无法掌握它。我已经尝试过 getter 和 setter,并直接将其作为静态变量调用,但没有。
这是我尝试过的:
DataGrabber.h
#pragma once
class DataGrabber {
public:
static float temp;
void readProcess(){
temp = 1.2;
}
}
粒子.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;
}
}
粒子.h
#pragma once
class Particle {
public:
void update() {
float x = DataGrabber.get();
}
它们都在另一个主标头 testApp.h 中被 #include。
【问题讨论】:
-
不知道你在问什么。
-
DataGrabber是一个 type 并且不能像在第二个示例中那样使用。如果您想在没有DataGrabber实例的情况下调用它,则成员(即get)需要为static并且您需要提供一个合格的名称,例如DataGrabber::get或@987654330 @, -
第一个示例看起来可能有效。你得到什么错误信息?您是否包含来自 Particle.h 的 DataGrabber.h?
-
你想抓取哪个DataGrabber的数据? (通过使它成为一个类,如果它不是静态的,那么你说的可能不止一个!)
标签: c++ global-variables public getter