c++ - 未初始化的常量,编译错误,C++,GNU

标签 c++ compiler-errors constants

我刚刚了解了C++中的常量,并在Code::Blocks上尝试了以下代码,它给了我以下编译时错误:

error: uninitialized constant 'b'[-fpermisive]





no match for operator >>



(我正在使用命名空间std)。

我的猜测是C++中不允许使用未初始化的常量。为什么会这样呢?

注意:我正在学习第一个代码,因此,如果您能在不使用其他任何语言的情况下进行解释,我将非常高兴。
const int b;
cin >> b;

最佳答案

常量必须在声明时初始化,声明后不能更改。

如果要以const的形式存储要从控制台读取的值,最简单的方法可能是通过一个函数:

int readInt()
{
    int i;
    std::cin >> i;
    return i;
}

int main()
{
    const int b = readInt();
}

关于c++ - 未初始化的常量,编译错误,C++,GNU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392575/

相关文章:

c++ - 将字符串数据附加到 std::vector<std::byte>>

java - ubuntu下Intellij编译android的hello world项目时出错

c - 这两个表达之间有区别吗?

VBA:使用公共(public)属性 Get 代替 Const(对于非 Unicode 字符)

c++ - 为什么 C++ std::exception::what 成员常量?

java - 在 Java 中跳转到行

c++ - 在 C++ 中,生成临时类类型的表达式可以归入哪些类别(左值、右值、xvalue 等)?

c++ - Visual C++ 编译器错误 C3646 : unknown override specifier

c++ - #include <priority_queue> 上的 Code::Blocks (MinGW) 编译错误

c++ - 安置新的和异常(exception)