我是C ++的新手,正在制作一款让自己更多自学的游戏。
我想听听您对存储/访问大量变量的一些看法。
我到目前为止所做的是尝试将我的“关键”变量粘贴到单独的命名空间中,以便我可以在整个程序中访问它们。
这是个好主意吗?我有一种强烈的感觉,它可能会回来咬我。
提前致谢=]
编辑:我是第一年的计算机学生,但我有几年的Java经验.C ++是如此不同= /答案 0 :(得分:1)
将变量分组为结构或类。如果您需要在课堂外暴露大量变量,那么您必须重新考虑您的设计
答案 1 :(得分:1)
组织数据的主要武器是类:类是表示程序元素的对象。你命名它,给它变量和函数,然后在你的程序中创建它的实例。该类负责其所有数据,并可以阻止其他类访问它。
class foo
{
public:
int iAmAPublicVariable; // <---This variable can be accessed by anyone who has access to an instance of the class
private:
int iAmAPrivateVariable; // <---- This variable can be accessed only from within the class itself.
};
控制对类数据的访问的一个好方法是使用Getters和Setters。所以......
class foo
{
public:
int getImportantData();
void setImportantData(int );
private:
int importantData;
};
int foo::getImportantData()
{
//here I could put some validation to make sure that it's ok to give out importantData;
return importantData; //this will return a copy of importantData, so the original is still safe within the class
}
void foo::setImportantData(int newData)
{
//here I could put some validation to make sure that it's ok to overwrite importantData;
importantData = newData;
}
通过这种设置,可以访问importantData的唯一方法是通过get和set方法,因此类可以最终控制发生的事情。
课程应该是你的课程的基础;如果你有大量的变量,那么看看它们的用途以及使用它们的功能,并尝试将这个过程分解为离散的功能区域。然后创建表示这些区域的类,并为它们提供所需的变量和方法。您的代码最终应该更小,更易于理解,更稳定,更易于调试,更可重用,并且可以更好地表示您正在尝试建模的任何内容。