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


Автор: mekhanikus 6.7.2009, 14:44
Пытаюсь создать класс, в определении которого замышлялась статическая таблица.
С инициализацией обычных статических членов разобрался, а вот с инициализацией таблицы - проблемы.
Умные книжки, имеющиеся в наличии, плавно обходят этот вопрос стороной.
Попытка заменить таблицу перечислением так же не увенчалась успехом.

Код

enum Week {_mon = 0xF01,
               _tue = 0xF02,
               _wdn = 0xF04,
               _thr = 0xF08,
               _fri = 0xF10,
               _sat = 0xF20,
               _sun = 0xF40 };


Предполагалось, например, что Week(3) == 0xF04, однако, C++ имеет на это свое мнение.

Направьте мысли в нужное русло.

Автор: mes 6.7.2009, 14:54
Код

// *. h
class Week
{
...
  static const int  Value[];

};

// *.cpp
const int  Week::Value[] = { 0xF01, 0xF02, 0xF04, 0xF08, 0xF10, 0xF20, 0xF40 };

Автор: triclosan 6.7.2009, 15:31
Вроде же стандарт с++03 разрешает инициализацию константных статических членов в объявлении класса.

Добавлено через 7 минут и 56 секунд
Ага, но не массивов. Поясните пожалуйста почему? 

Автор: mekhanikus 7.7.2009, 14:15
Цитата(mes @ 6.7.2009,  14:54)
Код

// *. h
class Week
{
...
  static const int  Value[];

};

// *.cpp
const int  Week::Value[] = { 0xF01, 0xF02, 0xF04, 0xF08, 0xF10, 0xF20, 0xF40 };

Странно,  smile 
Все просто!
Что же я делал не так? 
Млин, поудалял все исходники, решил идти другим путем.

Ладно, еще вернемся к этому вопросу.

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