【发布时间】:2013-10-08 10:18:35
【问题描述】:
几个月前,我创建了一个名为 Vexed 的游戏的 C# 项目。现在我正在创建一个俄罗斯方块,但在 C++ 中。基本上我想使用我在另一个项目中使用的相同逻辑,它有点像这样:
我创建了一个名为“游戏”的类,其中包含有关游戏的所有信息。它有它的方法、变量和一切。然后,我创建了一个名为“PublicInstances”或类似名称的静态类,并在该类中声明了如下内容:
static class PublicInstances
{
public static Game vexedGame = new Game(); //This is C# and works.
}
当时使用起来非常简单,因为我对游戏所做的任何更改都保存在我的类的静态实例中,我可以在项目的任何地方访问它。我想知道如何用 C++ 准确地做到这一点,以创建我的类 Game 的公共或全局实例,以便我可以访问它并在任何地方更改它,并在我的项目的任何表单或类中更新所有内容。非常感谢您的帮助。
//如果我的英语不是最好的,请见谅^^
【问题讨论】:
-
如果你真的想要一个全局的,你不必把它放在一个类中。只需在头文件中声明并在源文件中定义。但是全局变量(或全局可访问的静态变量)通常是糟糕的设计
-
我的主要问题是我经常在Forms之间穿梭,我需要从一个地方到另一个地方获取信息,如何更改全局变量或类的使用?
-
听起来
TetrisGame应该是一个命名空间,而不是一个对象。这也将消除为它定义类类型的需要。 -
我同意这个设计可能有点缺陷的事实,但这不是问题。无论如何,我仍然建议您重新考虑。
标签: c# c++ class static global-variables