class A
{
 A(int i)
 {...}
}如果只建一个对象:
int n=8;
A a=new A(n);如果要建16单元的A数组:
A[] a=请问这里怎么写 ?(没构造函数是:A[]a=new A[16];)但该类有构造函数且需要传个整形值,导至我不会写了,请大家指教!

解决方案 »

  1.   

    A[] a=new A[16]{new A(n1),new A(n2),……,A(n16)}
      

  2.   

    int [] a=new int[]{new A(n1),new A(n2),new A(n3)};int [] a=new int[3]{new A(n1),new A(n2),new A(n3)};int [] a={new A(n1),new A(n2),new A(n3)};我想这三个都可以.
      

  3.   

    A[] a=new A[n];
    A[0]=new A(i1);
    A[1]=new A(i2);
    A[2]=new A(i3);
    A[3]=new A(i4);
    ...
      

  4.   

    看起来你对C语言是印象深刻:)在C中,实例化一个对象数组可以这样做:
    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);
    }
      

  5.   

    楼上早啊!由于这个问题阻塞了程序进度,我今天提早打开电脑看有没回贴,看到大家的回复真是太高兴了,特别是gomoku说的非常详细,很感动!