【发布时间】:2012-05-09 16:35:10
【问题描述】:
我在一些文章中读到,在 java 中有一种叫做 Initializing blocks 的东西;当加载类或创建实例时,我们可以在其中执行一些初始化分配。
除了方法和构造函数,初始化块是Java程序中第三个可以执行操作的地方。
class InitDemo
{
static int y;
int x;
{
y = 10;
x = 0;
}
}
我在问 C++ 中是否有这样的范例? 谢谢。
【问题讨论】:
-
C 没有“加载”类的概念,它的静态视图与 Java 完全不同。所以,除了静态初始化器之外,没有什么类似的。
-
(本质上,Java 中的
static块是类的构造函数,因为类是(半)成熟的对象。C++ 类不是对象。) -
感谢您提供的信息,这很有帮助。
-
(我应该指出,您上面的块不是
staticinit 块。请参阅下面的帖子。)