В текущем стандарте, как вы уже заметили, вы не можете инициализировать массив-член в конструкторе с помощью синтаксиса списка инициализатора. Есть некоторые обходные пути, но ни один из них не очень хорош:
// define as a (private) static const in the class
const int DataContainer::_age_array_size = 5;
DataContainer::DataContainer() : _ageIndex(10) {
int tmp[_age_array_size] = {20,32,56,43,72};
std::copy( tmp, tmp+_age_array_size, _ageGroupArray );
}
Если значения в массиве всегда одинаковы (для всех объектов в классе), то вы можете создать одну его статическую копию:
class DataContainer {
static const int _ageGroupArraySize = 5;
static const int _ageGroupArray[ _ageGroupArraySize ];
// ...
};
// Inside the cpp file:
const int DataContainer::_ageGroupArray[_ageGroupArraySize] = {20,32,56,43,72};