Pixar
> http://msdn.microsoft.com/en-us/library/ff381400
хм.. че-то не пойму какой смысл делать класс шаблонным %)
Nikopol
Я же написал выше в чём проблема. Или нет?
Pixar
> но т.к. HandleMessage(..) находится в protected, приходится объявлять
> WindowProc через friend. А в этом случае вылезают различные ошибки
Или да, но кто-то не читал? =)
====
Вощем, я тупо скопировал части примера с msdn, не разобравшись в чём дело. Зато теперь всё работает.
Pixar
> не разобравшись в чём дело
вот твоя ошибка
Nikopol
> вот твоя ошибка
Ну, так а кто мне помог?
Pixar
Если бы ты описал свою проблему нормально, а не в духе "не работает", то помогли бы.
Nikopol
см. пост №24
Pixar
Это не описание проблемы, а плач какой-то.
Нифига не понятно, что ты хочешь сделать, и почему пишешь такой уродливый код.
Nikopol
Это код с msdn. Кто виноват, что они пишут уродство? :) Ну, вощем я не буду больше в этот способ углубляться. В принципе, я с ним разобрался.
Pixar
> Это код с msdn. Кто виноват, что они пишут уродство? :) Ну, вощем я не буду
> больше в этот способ углубляться. В принципе, я с ним разобрался.
Люди думающие что они дофига профессионалы так и говорят всегда "Кто виноват, что они пишут уродство?". Кто виноват, что вы думаете, что вы - дофига профессионалы?
Я только узнал, что через this доступны и protected, и private члены. Значит косяк был в другом. Скорее всего опечатался, хотя хз.
Подскажите как определить эту переменную за пределами класса:
static std::list< ClassWhoKnowsAllHisInstances* > classList;
Код приведенный в первом посте выдает следующую ошибку:
error LNK2001: unresolved external symbol "private: static class std::list<class ClassWhoKnowsAllHisInstances *,class std::allocator<class ClassWhoKnowsAllHisInstances *> > ClassWhoKnowsAllHisInstances::classList" (?classList@ClassWhoKnowsAllHisInstances@@0V?$list@PAVClassWhoKnowsAllHisInstances@@V?$allocator@PAVClassWhoKnowsAllHisInstances@@@std@@@std@@A)
Цитирую Джесса Либерти: не забывайте отдельно определять статическую переменную-член класса. В противном случае редактор связей во время компиляции программы выдаст следующее сообщение об ошибке: undefined symbol.
Судя с полученной ошибки при компиляции могу ли я утверждать что использование статических контейнеров в классах запрещено ?
skupchenko
пишеш в cpp файле
std::list< ClassWhoKnowsAllHisInstances* > ClassWhoKnowsAllHisInstances::classList;
all
Лучше в классе ClassWhoKnowsAllHisInstances запоминать std::list::iterator и в деструкторе удалять итератор, тогда не нужен поиск, std::set тем более здесь не к месту.
Тема в архиве.