【发布时间】:2013-06-26 05:00:36
【问题描述】:
MyClass[] CLASS = new MyClass[5];
int[] STRUCT = new int[5];
new [] 对类和结构的作用到底是什么。显然结构有一些重载的静态索引,导致它运行结构的默认构造函数。然而,一个类的 new [] 似乎除了腾出空间来初始化一个类的实例之外什么都不做。如何重载类的静态行为以运行默认构造函数。我知道如何使用 for 循环和其他方法来实现这一点。我的问题非常具体到新 [] 下发生的事情。我知道结构需要默认值。但是一个不可为空的类是否也需要一个默认值,这就是为什么当你尝试使用它时它会出错?或者这是否告诉我所有类实际上都是可以为空的?
【问题讨论】:
-
@CuongLe 什么数组?绝对没有的数组?当我创建一个 int 数组时,它会创建一个 0 数组,因为它是一个
struct,但是当我创建一个class数组时,它只会创建一个空间,因此在尝试使用它时会出现空错误。结构调用默认构造函数,但如果类索引完全没有调用,那么它实际创建的是什么?有没有办法像在结构中一样重载静态索引?就我而言, new CLASS[] 什么都不做,实际的数组是在 for 循环或任何用于初始化的方法中创建的。