在C ++中设置/获取大量变量的好习惯

时间:2012-11-02 13:36:09

标签: c++

我是C ++的新手,正在制作一款让自己更多自学的游戏。

我想听听您对存储/访问大量变量的一些看法。

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

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

提前致谢=]

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

2 个答案:

答案 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方法,因此类可以最终控制发生的事情。

课程应该是你的课程的基础;如果你有大量的变量,那么看看它们的用途以及使用它们的功能,并尝试将这个过程分解为离散的功能区域。然后创建表示这些区域的类,并为它们提供所需的变量和方法。您的代码最终应该更小,更易于理解,更稳定,更易于调试,更可重用,并且可以更好地表示您正在尝试建模的任何内容。