для внутренних нужд класса хотелось бы применить перечисление.
когда я объявляю в хидере перечисление следующим образом:
h-файл
Код
class ANALYSIS
{
private:
enum STATE_IZM{NO_STATE,IZM_SI,IZM_STR1,IZM_STR2} state_izm;
#pragma vector = INT0_vect
__interrupt static void KI_INT(void);
};
{
private:
enum STATE_IZM{NO_STATE,IZM_SI,IZM_STR1,IZM_STR2} state_izm;
#pragma vector = INT0_vect
__interrupt static void KI_INT(void);
};
И применяю в файле срр
Код
_interrupt void ANALYSIS:: KI_INT(void)
{
state_izm=IZM_SI;
}
{
state_izm=IZM_SI;
}
компилятор справедливо ругается что в статическом методе применяются нестатические члены.
но сделать перечисление статическим никак не получается..
h-файл
Код
class ANALYSIS
{
private:
enum STATE_IZM{NO_STATE,IZM_SI,IZM_STR1,IZM_STR2};
static STATE_IZM state_izm;
#pragma vector = INT0_vect
__interrupt static void KI_INT(void);
};
{
private:
enum STATE_IZM{NO_STATE,IZM_SI,IZM_STR1,IZM_STR2};
static STATE_IZM state_izm;
#pragma vector = INT0_vect
__interrupt static void KI_INT(void);
};
срр-файл определение статического перечисления
Код
// ни так не проходит
enum ANALYSIS:: state_izm; // ругается не знаю тега state_izm
// ни так
enum ANALYSIS:: STATE_IZM state_izm; //ошибка STATE_IZM не доступно
enum ANALYSIS:: state_izm; // ругается не знаю тега state_izm
// ни так
enum ANALYSIS:: STATE_IZM state_izm; //ошибка STATE_IZM не доступно
я в плюсах не очень, да и IAR только осваиваю.Где собака порылась?