crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Описание шаблонов в Assistante
SABROG
  опции профиля:
сообщение 14.12.2008, 22:50
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


А ведь действительно, как так, шаблоны в Qt используются и довольно активно, а в ассистенте нигде в описаниях классов нет явного определения шаблона-метода члена класса. Например:

qobject_cast<T>(QObject *)


был превращен в

T qobject_cast ( QObject * object )


правда он не метод класса, но вот этот метод

findChild<T>(const QString & name)


был превращен в

T findChild ( const QString & name = QString() ) const


Это какой-то новый синтаксис придуманный троллями ? Видимо я плохо искал, нигде не написано об этом ни слова. Похоже только буква T говорит о том, что это на самом деле шаблон и возвращаемый тип данных должен быть в угловых скобочках <>
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.12.2008, 23:03
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


да как то подурацки, метод числится так:
T QObject::findChild ( const QString & name = QString() ) const

а пример использования такой:
QPushButton *button = parentWidget->findChild<QPushButton *>("button1");

Тогда поидее числится должен так:
T QObject::findChild<T> ( const QString & name = QString() ) const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 15.12.2008, 0:04
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Есть такая мысль. Для шаблонов не всегда нужно явно указывать возвращаемый тип в угловых скобках, например если в самом шаблоне принимаемый и возвращаемый типы совпадают. Тогда вызов не будет ничем отличаться от вызова обычно функции. Но я не уверен насчет того, может ли компилятор по lvalue определять какой из шаблонов умеет возвращать заданный в lvalue тип. Надо поэкспериментировать. Если все получится, то значит все правильно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:52