2017-01-20 3 views
-1

Я хочу определить постоянный массив как элемент данных класса в его исходном файле.Определить массив const в исходном файле

Массив имеет 256 элементов, и между ними нет никакой связи.

class Foo { 
    private: 
    const int myArray[256] = { 
     0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 
     0, 0, 3, 0, 3, 0, 0, 1, 3, 0, 0, 0, 0, 1, 2, 0, 
     0, 0, 2, 2, 1, 0, 3, 2, 0, 2, 0, 0, 0, 0, 0, 0, 
     0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 
     0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    }; 
}; 

Мои вопросы:

1- Что лучше перенести определение массива в исходный файл?

2- Можно ли определить этот массив в исходном файле вместо заголовка, который определяет класс?

+1

Где вы видели что-либо о том, что члены 'static' являются неявно постоянными? Ничто в этой ссылке не говорит об этом. Не то чтобы вы полагаетесь на это, поэтому я не уверен, насколько это актуально. – ShadowRanger

+0

извините, мой плохой. постоянные члены статически неявно – Zingo

+0

Я просто пытаюсь найти способ не определять этот массив в файле заголовка. – Zingo

ответ

3

в заголовке:

static const int myArray[256]; 

в CPP файле

const int Foo::myArray[256] = { 
    // numbers 
}; 

Я предполагаю, что здесь вам не нужен для каждого экземпляра класса.

Что касается вопроса о том, где это лучше поставить; Я бы поместил его в файл cpp, но это в основном вопрос стиля.

Смежные вопросы