无法更改成员变量的值

时间:2014-10-11 18:52:19

标签: c++ oop

在我的程序中,我有一个名为ShaderManager的类,它封装了我使用的所有GLSL着色器,ShaderManager :: LoadShader()应该在每次调用时增加可用着色器的数量(shaderCount)。

问题是shaderCount++;不会增加shaderCount(unsigned int)的值。 shaderCount将为0,即使在增量操作之后它也将保持为零。当我写出shaderCount = shaderCount + 1时,同样的问题。

在ShaderManager.cpp中:

unsigned int ShaderManager::LoadShader(const char* vertFilename, const char* fragFilename)
{

     /* ...  OpenGL code ... */

     shaderCount = shaderCount + 1;
     return shaders[shaderCount - 1];
}

ShaderManager :: LoadShader()不是static或const。

在ShaderManager.h中:

class ShaderManager
{

public:

    static const unsigned int MAX_SHADERS = 32;

    ShaderManager();
    ~ShaderManager();

    unsigned int LoadShader(const char* vertFilename, const char* fragFilename);
    static unsigned int GetShaderID(const unsigned int shader);



private:

    unsigned int shaderCount;
    void SetupDefaultShader();
    static unsigned int shaders[MAX_SHADERS];

};

知道会发生什么事吗?

0 个答案:

没有答案