在Java中,我们可以声明一个空白的最终变量,并在以后对其进行初始化。编译器将确保初始化只发生一次 - 初始化失败或双重初始化都是编译时错误。例如:
public int bar() {
return 66;
}
public void foo() {
final int x; // declare the variable
...
x = bar(); // initialization only once
}
在Java中,编译器可以保证在第一次赋值之前绝对不会在任何代码路径上赋值,并且可以保证它绝对不会在任何代码路径上被分配第二次。(有关更多信息,请参见 Java 语言规范的第 16 章 “确定赋值”。x
我们如何在C++中实现类似的行为?是否可以声明变量但推迟其初始化?(不丢弃说明符。constconst
白板的微信
慕斯王
相关分类