Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > инициализация массива строк в классе


Автор: ssp 22.9.2005, 14:16
как проинициализировать массив строк в классе? т.е. типа
Код

struct AI_elements {
...
    static char*  const Names[] = {"RAW", "VALID"};
};


Автор: sergejzr 22.9.2005, 14:40
По-хорошему - в конструкторе класса.
Код

class AI_elements
{
  char** names;
  AI_elements()
  {
    names=new char*[2];
    names[0]=new char[4];
    sprintf(names[0],"%s","RAW");
    names[1]=new char[6];
    sprintf(names[1],"%s","VALID");
 }
}

Автор: _hunter 22.9.2005, 14:41
может char**? и зачем const?

Автор: Vyacheslav 22.9.2005, 15:07
Для static это делается вне класса
Код

struct AI_elements {
...
    static const char*  const Names[];
};


const  char*  AI_elements::Names[2] = {"RAW", "VALID"};


Автор: ssp 23.9.2005, 06:07
Vyacheslav
Получается:
Код

struct AI_elements {

    static const char* const  Names[]  = {"RAW", "VALID"};
};


gcc это слопал, но мой другой компилятор отказался smile

2sergej.z этот массив не изменяется во время исполнения. И не хочется делать это через new

а мой компилятор слопал так:
Код

struct AI_elements {
    static const char* const  Names[];
};

const  char* const AI_elements::Names[] = {"RAW", "VALID"}; 


Спсб!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)