![]() |
|
|
![]()
|
|
| yngwie19 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Здравствуйте, помогите разобраться.
Вот небольшой пример объектной иерархии. Я хочу получить список всех дочерних объектов pobj1. В ассистенте написано что для этого нужно использовать функцию children(), которая возвращает указатель на список QObjectList. Пишу так:
Получаю ошибку
Почему метод возвращает не указатель (как написано в документации) а сам объект ? Это сообщение отредактировал(а) yngwie19 - 19.6.2009, 22:32 |
||||||
|
|||||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
http://doc.qtsoftware.com/4.5/qobject.html#children - а где тут написано, что должен быть указатель? Константная ссылка.
|
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
||||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
yngwie19, Опечатка походу.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
а что означает эта надпись?
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
yngwie19, Гм...не ожидал я от тебя такого
QList - шаблонный класс. Параметром для него является QObject* Добавлено через 44 секунды Т.е. Он хранит массив указателей на QObject -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
andrew_121, надо про сишные шаблоны почитать. Спасибо.
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
||||
|
||||
| yngwie19 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
про шаблоны вроде разобрался, тогда такой пример. Нужно по имени объекта найти его в этом примере объектной иерархии, для чего используем функцию: findChild()
прототип этой функции такой:
т.е получается т.к это шаблонная функция не-шаблонного класса то тип Т означает приведение к типу найденного объекта так? а где можно посмотреть реализацию этой функции, а то не очень понятно где еще она в своем теле использует тип Т. и еще вопрос: Когда в не-шаблонном классе есть шаблонная функция, то для генерации компилятором необходимого ее варианта, тип нужно обязательно указывать сразу после названия шаблонной функции но до ее аргументов?
Это всегда для таких функций или все зависит от ее реализации ? Это сообщение отредактировал(а) yngwie19 - 20.6.2009, 20:34 |
||||||
|
|||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Я не знаю почему, но, когда речь идет о шаблонах - в документации Qt они всегда выглядят как методы, но тем не менее, вызвать их как методы нельзя, т.е. нужно писать object.findChild<classname *>() Ты можешь опустить имя объекта, но класс объекта опускать нельзя. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
не так. Когда тип шаблонных параметров (ш.п.) нельзя вывести из аргументов, то тогда надо указывать тип явно. например
1. тип ш. п. выводится из типа переменной i 1a. можно указать явно, но это лишние, так как в данном случае компилятор справится без подсказки. 2. так как, тип ш. п. вывести не возможно, его необходимо указать |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
mes, спасибо тебе большое очень доходчиво обьяснил +1
Это сообщение отредактировал(а) yngwie19 - 20.6.2009, 23:46 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |