Название: Как унаследовать QHash Отправлено: iRQSX от Август 19, 2009, 12:04 Нужно создать класс который наследует QHash и дополнить своими методами. Только вот не могу понять как обращаться к данным...
Код
Код ничего не выдает. Да и внутри класса не понимаю как обратиться к данным. Помогите пожалуйста разобраться! Название: Re: Как унаследовать QHash Отправлено: Rcus от Август 19, 2009, 12:19 А что-то должен выдавать? Как вы узнаёте что какие-то плагины были загружены?
/*Оставлю при себе мнение о наследовании от контейнерного класса */ Название: Re: Как унаследовать QHash Отправлено: iRQSX от Август 19, 2009, 12:26 Код Эти методы выдавать должен... Знаю доподлинно что есть загруженные (убрал строки которые оповещают о загрузке). если заводить его как поле то проблем нет... /*Оставлю при себе мнение о наследовании от контейнерного класса */ Согласен, но уже интересно как это делается... Название: Re: Как унаследовать QHash Отправлено: Rcus от Август 19, 2009, 17:22 Все равно не могу понять проблему, то есть вставка в контейнер происходит, а при обращении по ключу возвращается default constructed value (нулевой указатель)?
Название: Re: Как унаследовать QHash Отправлено: iRQSX от Август 20, 2009, 15:47 Я новичек, но наверное так. Вставка идет (в конструкторе) но не внутри реализации самого класса, ни при его использовании в другом месте не получается заставить отобразить QTCreator список доступных методов IModule, который возвращается операцией [], а если забить и записать ручками ошибка
G:/QProject/Loader/mainwindow.cpp:11: error: request for member `Execut' in `((QHash<QString, IModule*>*)(&m))->QHash<K, V>::operator[] [with Key = QString, T = IModule*](((const QString&)(&QString(((const char*)"RecordViewer")))))', which is of non-class type `IModule*' Название: Re: Как унаследовать QHash Отправлено: Igors от Август 20, 2009, 18:28 Здравствуйте
insert(interface->getTitle(), interface); // Правильно??? Просто интересно - шо это за синтаксис? Кто такой "b" и как/где он описан? Кто кого вызывает? Edit: перепутал, я у себя вижу insert(interface->getTitle(), interface); // Правильно??? Наверное это просто ошибка в отображении на web :) Все равно не пойму - чей insert? Название: Re: Как унаследовать QHash Отправлено: iRQSX от Август 20, 2009, 18:40 Жирный шрифт в кодбоксе не проставился....Остальное думаю понятно.
Не поверишь, я вот тоже. по идее это инсёт моего класса (Веди он его унаследовал), тади интереса пытался ::insert (я так понимаю это вызов метода родителя в данном случае) но при этом ошибка компиляции. Название: Re: Как унаследовать QHash Отправлено: Igors от Август 21, 2009, 18:55 Жирный шрифт в кодбоксе не проставился....Остальное думаю понятно. Спасибо, теперь понял. Если надо разобраться с QHash - лучше создать что-то скромное (типа QHash<QString, int>) и с ним поэкспериментировать. А так - и IModule. и foreach, получается что не только "изучить" а сразу и задействовать по полной :) Конечно, если сходу пройдет - отлично, но оно не обязано всегда проходить. Не поверишь, я вот тоже. по идее это инсёт моего класса (Веди он его унаследовал), тади интереса пытался ::insert (я так понимаю это вызов метода родителя в данном случае) но при этом ошибка компиляции. Кстати, что плохого в наследовании от контейнера, и почему это считается "дурным тоном"? |