Питане
10 отговора
0 прегледа
Питане
В хедъра на CMyForm имам :
static std::map<HWND, CMyForm*> s_mapInstances;
В имплементацията на OnInitDialog имам:
s_mapInstances[m_hWnd] = const_cast<CMyForm*>(this);
Може ли (абе май не може де) да избегна const_cast и въобще има ли нещо нередно в този код.
static std::map<HWND, CMyForm*> s_mapInstances;
В имплементацията на OnInitDialog имам:
s_mapInstances[m_hWnd] = const_cast<CMyForm*>(this);
Може ли (абе май не може де) да избегна const_cast и въобще има ли нещо нередно в този код.
Re: Питане
абе за къв чеп изобщо се налага каст? нещо на тарикат са праиш май, а не знаеш за динамичен каст, лошо
Re: Питане
Неук келеш, константен е само в конст мембър. И ако това ти е ситуацията, имаш точно два варианта - мапа да е към конст пойнтери, или кастваш през воид*. За измекяр като теб бих препоръчал втория начин.
Re: Питане
Абе хем не знае хем обижда.
Ей, ГHУCEH ГHOM this е първия аргумент на всяка не статик мембър функция и е деклариран така:
CMyClass *const this;
А в константна функция е деклариран така:
const CMyClass *const this;
Такато казах винаги е константен указател, а не че винаги сочи към константен обект.
Ако не вярваш питай батковците.
Ей, ГHУCEH ГHOM this е първия аргумент на всяка не статик мембър функция и е деклариран така:
CMyClass *const this;
А в константна функция е деклариран така:
const CMyClass *const this;
Такато казах винаги е константен указател, а не че винаги сочи към константен обект.
Ако не вярваш питай батковците.
Re: Питане
Я, то от лаф на лаф току сме се напсували. Айде, със здраве - четеш, значи има надежда за тебе.
аз така и не разбрах за какво ти е конста
искаш мап с който от HWND да получиш на коя форма е. за какво ти е конст при попълването му? ако искаш мапа да дава конст указател, не трябва ли в аргументите на темплейта да напишеш конст?
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: аз така и не разбрах за какво ти е конста
Прав си. Не ми трябва конст указател.
И аз се зачудих защо ми даваше грешка без конст_каст, но не съм обърна внимание явно за друга грешка е ставало дума или съм се разсеял - както и да е.
Става и без кастването
.
Иначе при: std::map<HWND, CMyForm *const> , не мога да пълня мапа.
Еррор: l-value specifies const object !
И аз се зачудих защо ми даваше грешка без конст_каст, но не съм обърна внимание явно за друга грешка е ставало дума или съм се разсеял - както и да е.
Става и без кастването
Иначе при: std::map<HWND, CMyForm *const> , не мога да пълня мапа.
Еррор: l-value specifies const object !
Re: Питане
оправи си циклите и декларациите
Kato se znam kuv inzener sum ....me e strah...
Kato se znam kuv inzener sum ....me e strah...