错误:分配只读变量

时间:2016-02-13 21:55:39

标签: c++

我有一个main.h文件并包含static const unsigned int TIME = 13; 我有和main.cpp文件包括

    int64_t Gettime(int nnow, int64_t never)


{ 
   static const bool TIME = true;

    if(nnow == 6)
    {
        TIME = 9; 
    }

    else if(nnow == 8)
    {
        TIME = 3; 
    }

    else if(nnow == 1)
    {
        TIME = 40;
    }

    else if(nnow > 190)
    {
        TIME = 4000000;
    }

    return TIME + never;
}

在编译时我得到main.cpp:56:24:错误:分配只读变量'TIME'          TIME = 3;               ^

我想使用main.cpp函数在main.h中更改TIME变量吗?

2 个答案:

答案 0 :(得分:1)

TIME变量声明为const,因此您只能读取其值而不能修改它,这就是编译器在错误中通知您的内容。

如果您必须修改该变量,则必须删除const限定符。

答案 1 :(得分:0)

@shafeen的回答是正确的,但是因为看起来你还没有完全理解它,一些代码怎么样?

改变这个:

static const bool TIME = true;

要:

static bool TIME = true;

我会把这个作为对@ shafeen的回答的评论,但我没有代表:(