请教下类的指针能否保存在数组里?最好给个列子

解决方案 »

  1.   

    className *array[10];
    for(int i = 0; i < 10, i++)
    {
      array[i] = new className;
    }
    ...for(int i = 0; i < 10, i++)
    {
      delete array[i];
      

  2.   

    纠正,类是抽象,只是框架,指针是不能指向类的,只能指向类的实例,也就是这个类的对象。可以用指针数组来保存指向各个对象的指针,如:
    void * ptrarray[8];
    ptrarray[0]=&a;//a是A类的对象
    ptrarray[1]=&b;//b是B类的对象但是,可以看到上述方法指针都为void*类型,所以运行时如果要通过这些指针来调用相应类的函数,那会有些麻烦,必须要执行强制类型转换。
    所以真正好的方法是:
    假设A类是B,C两类的父类,B,C都直接继承自A,

    A* ptrarray[8];ptrarray[0]=&c;//c是C类的对象
    ptrarray[1]=&b;//b是B类的对象
    ptrarray[2]=&a;//a是A类的对象
    而在调用相应类的函数时只需要通过多态的方法来实现就行了。
    多态太复杂,自己去查资料。
      

  3.   

    可以吧
    指针数组:一个数组里存放的都是同一个类型的指针,通常我们把他叫做指针数组。
    void * a[2]; 
    a[0]= new class; 
    a[1]= new class; 
      

  4.   

    能够用指针表达的元素都可以使用对应的pointer数组进行存储。