static
и extern
одновременно не имеет смысла. static
в области видимости файла делает массив недоступным для других файлов, а extern
сообщает компилятору, что ваш массив определен где-то еще.
Вы можете делать то, что предлагает 321008, , за исключением того, что вы не объявляете свои массивы статическими , что является недопустимым C и C ++. Это дает вам три глобальные переменные, которые вы можете использовать везде, где включен заголовочный файл.
Например, вот так:
// .h file:
extern const float TEMPLEVertices[];
// .cpp (or .c) file:
const float TEMPLEVertices[] = { 1.0, 2.0, 5.6 /* or whatever*/ };
Или вы можете делать то, что предлагает Фортран, но это даст вам доступ только к области файла, а не к глобальным переменным.
Вы не никоим образом не должны определять класс, если используете исходный файл C ++. В отличие от Java, C ++ не принуждает вас к объектно-ориентированному проектированию (возможно, это хорошо обсуждать или нет, но в любом случае).
РЕДАКТИРОВАТЬ: Что касается обновления вашего вопроса, это потому, что вы определяете их как static
. Если вам нужны только глобальные переменные, вам не следует этого делать, а вместо этого оставить одно определение (const float
) и ссылаться на него с extern
, как в моем примере выше.