внутренний тип и проблемы с ним
От: Fynjisx  
Дата: 21.07.08 08:09
Оценка:
class MODE {
enum TMODE{ON, OFF};
TMODE m_mode;
char* m_modestr;

public:
MODE(): m_mode(OFF) {}
MODE(TMODE mode): m_mode(mode) {}
};

.....

MODE m(ON); // <-- ругается пишет что ON неизвестный идентификатор... Приходится выталкивать определение типа в глобальную область... Но тип то у меня используется только внутри класса, т.е он внутренний и не хотелось бы его выталкивать в глобальную область. Как поступить?
Заранее благодарю.
С уважением Fynjisx
Re: внутренний тип и проблемы с ним
От: kvser  
Дата: 21.07.08 08:16
Оценка:
MODE m(MODE::ON);
Re: внутренний тип и проблемы с ним
От: Kluev  
Дата: 21.07.08 08:16
Оценка:
Здравствуйте, Fynjisx, Вы писали:


MODE m(MODE::ON);
Re: внутренний тип и проблемы с ним
От: Bell Россия  
Дата: 21.07.08 08:24
Оценка:
Здравствуйте, Fynjisx, Вы писали:

F>class MODE {

F> enum TMODE{ON, OFF};
F> TMODE m_mode;
F> char* m_modestr;

F>public:

F> MODE(): m_mode(OFF) {}
F> MODE(TMODE mode): m_mode(mode) {}
F>};

F>.....


F>MODE m(ON); // <-- ругается пишет что ON неизвестный идентификатор... Приходится выталкивать определение типа в глобальную область... Но тип то у меня используется только внутри класса, т.е он внутренний и не хотелось бы его выталкивать в глобальную область. Как поступить?


class MODE {
public:
   enum TMODE{ON, OFF}; 
private:
   TMODE m_mode;
   char* m_modestr;

public:
   MODE(): m_mode(OFF) {}
   MODE(TMODE mode): m_mode(mode) {}
};

MODE m(MODE::ON);
Любите книгу — источник знаний (с) М.Горький
Re[2]: внутренний тип и проблемы с ним
От: NikeByNike Россия  
Дата: 21.07.08 11:18
Оценка:
Здравствуйте, Bell, Вы писали:

B>
B>class MODE {
B>public:
B>   enum TMODE{ON, OFF}; 
B>private:
B>   TMODE m_mode;
B>   char* m_modestr;

B>public:
B>   MODE(): m_mode(OFF) {}
B>   MODE(TMODE mode): m_mode(mode) {}
B>};

B>MODE m(MODE::ON);
B>


class Mode {
public:
   enum EMode { M_ON, M_OFF }; 

   Mode(): m_mode(M_OFF), m_modestr(0) {}
   Mode(EMode mode): m_mode(mode), m_modestr(0) {}
private:
   EMode m_mode;
   char* m_modestr;
};

Mode m(Mode::M_ON);

Нужно разобрать угил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.