У меня следующая структура кода:
myClass.h
class myClass
{
public:
void DoSomething(void);
};
myClass.cpp
#include myClass.h
static const unsigned length = 5;
static myArray<float, length> arrayX;
void myClass::DoSomething(void)
{
// does something using length and array X
}
Теперь я хочу преобразовать статическую переменную, определенную вобласть видимости файла должна быть статическим членом класса.Я делаю следующее:
myClass.h
class myClass
{
static const unsigned length;
static myArray<float,length> arrayX;
public:
void DoSomething(void);
};
myClass.cpp
#include myClass.h
const unsigned myClass::length = 5;
myArray<float, length> myClass::arrayX;
void myClass::DoSomething(void)
{
// does something using length and array X
}
Однако я получаю сообщение об ошибке:
C2975: «Длина»: недопустимый аргумент шаблона для «myArray», ожидаемое постоянное выражение во время компиляции myClass.h
Я понимаю, что получаю эту ошибку, поскольку длина еще не инициализирована в заголовочном файле,Как я могу обойти это?