class A
{
A(int i)
{...}
}如果只建一个对象:
int n=8;
A a=new A(n);如果要建16单元的A数组:
A[] a=请问这里怎么写 ?(没构造函数是:A[]a=new A[16];)但该类有构造函数且需要传个整形值,导至我不会写了,请大家指教!
{
A(int i)
{...}
}如果只建一个对象:
int n=8;
A a=new A(n);如果要建16单元的A数组:
A[] a=请问这里怎么写 ?(没构造函数是:A[]a=new A[16];)但该类有构造函数且需要传个整形值,导至我不会写了,请大家指教!
A[0]=new A(i1);
A[1]=new A(i2);
A[2]=new A(i3);
A[3]=new A(i4);
...
A a[100];
一个要求就是A必须有没有参数的构造函数。
这时候,100个A对象建立在堆栈上(不是全局声明的话),它的耗用的内存等于100 * sizeof(A)。另外一个建立数组方法是,
A *a[100];
实际上它是建议一个可以放100个指针的数组,每个指针可以指向一个A的实例。
指针数组耗用的内存为100 * sizeof( void* )。当然在使用前,还要创建具体的A实例,并给每个指针赋值:
for(int i=0; i < _countof(a); i++)
{
a[i] = new A(i);
}在C#中,对象数组的创建类似第二种方法。
A[] a = new A[100]; 创建了引用的数组本身,没有创建任何的A对象,每个A[x]都是null。
跟C的第二种方法一样,使用前还要创建具体的A实例:
for(int i=0; i < a.Length; i++)
{
a[i] = new A(i);
}A[] a=请问这里怎么写 ?(没构造函数是:A[]a=new A[16];) A[] a = new A[100];
for(int i=0; i < a.Length; i++)
{
a[i] = new A(i);
}