代码之家  ›  专栏  ›  技术社区  ›  jaksia

声明后可以设置常量值吗?

  •  -4
  • jaksia  · 技术社区  · 6 年前

    我可以在C++中声明后设置常量值吗?我试过:

    #include <iostream>
    using namespace std;
    
    int main(){
        const int a;
        a = 56;
        cout << a;
        return 0;
    }
    

    它成功编译,但控制台中的输出为4309678。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Ron Alan    6 年前

    不,你不能。而且那甚至不会编译。您需要初始化 const 值:

    const int a = 56;
    

    或:

    const int a{ 56 };
    

    之后,您不能将新值赋给变量,如 const 将其标记为只读,以便不会编译:

    const int a = 56;
    a = 57; // error: assignment of read-only variable 'a'
    

    如果在GCC上,保持常量未初始化将产生以下错误:

    error: uninitialized const 'a' [-fpermissive]
    

    或者如果使用Visual C++:

    const variable "a" requires an initializer