Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要关于如何在C++; 我在一个大型项目中工作,涉及JavaScript、jQuery、C++和AWESOMI.现在我只关注C++的这个问题。在游戏中,应该有两种不同的“工作”(你可以是科学家,也可以是傻瓜)。我需要做一个方式来检查,看看你目前的工作(你可以在游戏中改变)。我尝试暂时的方法,因为我是C++新手,我确信任务最终会交给某人。p>_C++_Global Variables_Scope - Fatal编程技术网

需要关于如何在C++; 我在一个大型项目中工作,涉及JavaScript、jQuery、C++和AWESOMI.现在我只关注C++的这个问题。在游戏中,应该有两种不同的“工作”(你可以是科学家,也可以是傻瓜)。我需要做一个方式来检查,看看你目前的工作(你可以在游戏中改变)。我尝试暂时的方法,因为我是C++新手,我确信任务最终会交给某人。p>

需要关于如何在C++; 我在一个大型项目中工作,涉及JavaScript、jQuery、C++和AWESOMI.现在我只关注C++的这个问题。在游戏中,应该有两种不同的“工作”(你可以是科学家,也可以是傻瓜)。我需要做一个方式来检查,看看你目前的工作(你可以在游戏中改变)。我尝试暂时的方法,因为我是C++新手,我确信任务最终会交给某人。p>,c++,global-variables,scope,C++,Global Variables,Scope,我不确定如何保存这个“变量”。C++中的全局变量显然是大的NO.NO。我应该使用静态…方法?我只是不知道。实际的程序本身太大,不经过大量编辑和努力就无法包含任何示例。如果您有任何建议或问题,我很乐意听取并尝试回答 编辑在测试JS映射的新功能之前,我需要这个作业和切换的实现。这正是我这么做的原因,所以当我在写我脑海中的标题时。你使用了一个“对象”。这些是状态和变量的集合,您可以有效地使用它们 enum Job { Scientist, Ditchman }; class Play

我不确定如何保存这个“变量”。C++中的全局变量显然是大的NO.NO。我应该使用静态…方法?我只是不知道。实际的程序本身太大,不经过大量编辑和努力就无法包含任何示例。如果您有任何建议或问题,我很乐意听取并尝试回答

编辑在测试JS映射的新功能之前,我需要这个作业和切换的实现。这正是我这么做的原因,所以当我在写我脑海中的标题时。

你使用了一个“对象”。这些是状态和变量的集合,您可以有效地使用它们

enum Job {
    Scientist,
    Ditchman
};

class Player {
    Job j;
public:
    void job(Job newjob) { j = newjob; }
    Job job() { return j; }
    Player() { job = Scientist; }
};

int main() {
    Player p;
    p.job(Ditchman);
    //....
    p.job(Scientist);
}

在这种情况下,所有
Player
函数都可以访问
Player::j
变量,通过创建Player的实例,我们也可以创建
j
的实例。如果其他函数需要访问我们的
播放器
,在这种情况下,我们通常会通过引用传递,因为我们不想创建更多的
播放器

我建议使用一种oo方法,使用名为job的基类和名为scientist和ditchman的派生类。来自job的每个派生对象都将保存在某种数组或容器中,并使用多态调用来执行正确的专用函数,这些函数应该有一个纯虚拟基类定义,然后在每个派生类中过度使用

你说过“你可以在游戏中改变”,从一个科学家变成一个傻瓜。因此,如果您使用这种方法,那么您将需要一个转换函数来完成在scientist对象和ditchman对象之间转换所需的所有工作


永远不要使用全局变量。还要注意循环引用(一个类调用另一个类中的方法,然后该类调用回第一个类),并且尽量不要这样做。让一些容器(如向量、映射或哈希表)保存游戏中对象的列表,并将指向该对象的指针(或引用)传递给其他需要它的类是可以的。

您可以使用全局变量,也可以将变量保留在主函数中。您的问题标题提到测试。但是你的问题主体并没有…看起来这个值将作为“作业”存储在“玩家”类中,可能在你的游戏单例中。如果你的项目遵循最佳的OOP实践,看起来这不是一个问题。@ WalkTalk如果我更了解C++,这不是问题。你说得对。但是我问是因为我不知道。