Top.Mail.Ru
? ?
ankorol's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 3 most recent journal entries recorded in ankorol's LiveJournal:

Thursday, February 4th, 2010
12:27 am
Допустим задача :
Есть иерархия элементов управления (GUI Controls), для каждого элемента есть соответствующий класс его состояния, все состояния тоже выстроены в иерархию, control вмещает в себе состояние, то есть состояние - член элемента управления. Вопрос: как такое реализовывать?
Можно так:
class State
{
public:
bool Visible;
};

class ButtonState:public State
{
//...
}
class Control
{
 State* st;
}

class Button: public Control
{
 Button(){st = new ButtonState();}
}


* This source code was highlighted with Source Code Highlighter.


Но так мы теряем информацию о типе состояния, что бы обратится к каким-то специфическим состояниям кнопки, приходится даункастить.

Что я предлагаю (решение на С++):

template<typename StateType>
class Control
{
 StateType st;
}

class Button: public Control<ButtonState>
{
}


* This source code was highlighted with Source Code Highlighter.

Информация о типе сохранена, ура!
Friday, February 17th, 2006
2:59 pm
Ищу книгу
Помогите найти книгу Д.Грис "Наука программирования" М.МИР 1984г. Может кто видел где-нибудь.
Monday, January 2nd, 2006
8:18 pm
STL in VS 6.0
How can I see STL container in VC 6.0 during debuging?Please help!
Влагомер , вологомір , вологовимірювач   About LiveJournal.com
Image