Инициализация массива внутри класса
От: Sergey Россия  
Дата: 26.03.13 07:13
Оценка: -1 :))) :)
Инициализация массива внутри класса

Задача, необходимо иметь массив указателей на элементы класса.
Пример решения:

typedef struct {
  int a;
  int *p;
}Tarray;

class TCtest 
{
public:
   TCtest(void)
   {
    initarray();
   }
   ~TCtest(void){}
   void initarray(void)
   { 
    const Tarray arr[]=
    {  
     {1,&a1},
     {2,&a2},
     {3,&a3},
    };
    ar=(Tarray*)arr;
   }
int a1,a2,a3;
Tarray * ar;
};

int main(void)
{
TCtest c1;
TCtest c2;
c1.a1 = 11;
c1.a2 = 22;
c1.a3 = 33;
c2.a1 = 44;
c2.a2 = 55;
c2.a3 = 66;
printf("A1=%d A2=%d A3=%d\r\n",*c1.ar[0].p,*c1.ar[1].p,*c1.ar[2].p);
printf("A1=%d A2=%d A3=%d\r\n",*c2.ar[0].p,*c2.ar[1].p,*c2.ar[2].p);
return(0);
}

Вывод программы
Output:
A1=11 A2=22 A3=33
A1=44 A2=55 A3=66


Какие ещё могут быть варианты?
Какие недостатки решения?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.