Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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+中设置/获取大量变量的良好习惯+; 我是C++新手,我正在做游戏来教自己更多。_C++ - Fatal编程技术网

在C+中设置/获取大量变量的良好习惯+; 我是C++新手,我正在做游戏来教自己更多。

在C+中设置/获取大量变量的良好习惯+; 我是C++新手,我正在做游戏来教自己更多。,c++,C++,我想听听您关于存储/访问大量变量的一些想法 到目前为止,我所做的是尝试将“关键”变量粘贴到单独的名称空间中,以便在整个程序中访问它们 这是个好主意吗?我有一种强烈的感觉,它可能会回来咬我 提前感谢=] 编辑:我是计算机专业一年级的学生,但我有几年的Java经验。。C++是如此不同的= //将变量分组为结构或类。如果需要在类之外公开大量变量,则必须重新考虑设计组织数据的主要武器是类:类是表示程序元素的对象。您可以给它命名,给它变量和函数,然后在程序中创建它的实例。该类负责其所有数据,并可以阻止其他

我想听听您关于存储/访问大量变量的一些想法

到目前为止,我所做的是尝试将“关键”变量粘贴到单独的名称空间中,以便在整个程序中访问它们

这是个好主意吗?我有一种强烈的感觉,它可能会回来咬我

提前感谢=]


编辑:我是计算机专业一年级的学生,但我有几年的Java经验。。C++是如此不同的= //

将变量分组为结构或类。如果需要在类之外公开大量变量,则必须重新考虑设计

组织数据的主要武器是类:类是表示程序元素的对象。您可以给它命名,给它变量和函数,然后在程序中创建它的实例。该类负责其所有数据,并可以阻止其他类访问该数据

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.
};
通过这种设置,访问importantData的唯一方法是通过get和set方法,因此类可以最终控制对其进行的操作


课程应该是课程的基础;如果你有大量的变量,那么看看它们是用来做什么的,什么函数使用它们,然后试着把过程分解成离散的功能区域。然后创建表示这些区域的类,并为它们提供所需的变量和方法。您的代码应该更小、更易于理解、更稳定、更易于调试、更可重用,并且更好地表示您试图建模的内容。

大量变量本身是一个坏主意。你应该把你的相关变量分组。当我们开始编程并尝试创建游戏之类的东西时,我们都加入了进来——但从关于如何完成事情的基本教程开始确实是个好主意。它可以避免以后的头痛和心痛。特别是如果你想使用C++…你可以用小容器或类来存储统计、速度、视野等。
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;
}