我有以下问题(只是学习 OOP 风格的 C++):我有 3 个类:
- 应用程序
- 对象管理器
- 目的
app 类设置启动变量并创建 objectManager 的实例。它告诉 objectManager 从不同的文件加载值,并预先计算向量中的一些数据,每个对象需要什么。
我的问题如下:我想为每个对象使用可访问的预先计算的向量。我不明白我怎么可能从对象中访问这个变量,因为他们对经理的实例一无所知。
我读过关于单例的文章,但我不知道应该如何实现它。
我已经阅读了有关静态数据成员的信息,但 AFAIK 似乎我仍然必须以某种方式连接到 objectManager 实例,所以它对我没有帮助。
我已经尝试过全局变量(我知道......),但最终出现编译错误。
我试图将静态变量放在 objectManager.h 中的类定义之外(这是一个全局案例吗?),但结果很奇怪:我可以从包括 objectManager.h 在内的程序的所有部分访问变量,但它的值在不同的类中是不同的/未初始化的。
对象管理器.h
#pragma once
#include "Object.h"
static int xxxtest;
class objectManager
{
对象管理器.cpp
xxxtest = 123456;
cout << xxxtest << endl;
-> 123456
在 object.cpp 或 app.cpp 中(之后)
cout << xxxtest << endl;
-> 0
你能向我解释这里发生了什么吗?
您能否向我推荐一种组织此类程序的简单而干净的方法,同时使程序的其他部分可以访问预先计算的变量?