Вы захотите сделать что-то вроде этого:
class week
{
public:
week();
static const char * const days[];
};
week::week()
{
}
const char * const week::days[] = {"monday" , "tuesday", "etc..."};
void main()
{
week w;
}
ОБНОВИТЬ:
Взгляните на несколько ошибок, которые я исправил:
- Добавлен
;
в конце класса
- Инициализация статической переменной
days
перенесена вне класса, а также добавлен ;
в оператор инициализации.
Статические переменные инициализируются в глобальной области видимости (после определения класса). Конструктор используется только для инициализации переменных-членов текущего экземпляра объекта.
Что касается вашего вопроса о размещении всего вашего кода в одном (.cpp) файле, ответ положительный. Вы можете поместить весь свой код в один файл и скомпилировать его, и он будет работать.
Однако это не рекомендуется.
По соглашению файлы заголовков (.h) содержат объявления, а (.cpp) — определения.
Итак, рефакторинг приведенного выше кода, я получаю следующие файлы с соответствующим кодом:
Файл: week.h
class week
{
public:
week();
static const char * const days[];
};
Файл: week.cc (или week.cpp)
#include "week.h"
const char * const week::days[] = {"monday" , "tuesday", "etc..."};
week::week()
{
}
Файл: main.cc (или main.cpp)
#include "week.h"
void main()
{
week w;
}
person
galdin
schedule
26.09.2014