crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Конструктор не существует, но работает..., Объясните, как такое может быть?
ViGOur
  опции профиля:
сообщение 3.12.2007, 11:12
Сообщение #11


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Darvin @ 3.12.2007, 11:10) *
Вот еще бы понять, по каким правилам C++ это происходит.
Правило неявного преобразования типов. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Darvin
  опции профиля:
сообщение 3.12.2007, 11:20
Сообщение #12


Студент
*

Группа: Новичок
Сообщений: 36
Регистрация: 30.11.2007
Пользователь №: 30

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




Репутация:   0  


Цитата(ViGOur @ 3.12.2007, 11:12) *
преобразования типов. :)

Ну с простыми типами и их преобразованием понятно. Они определены в языке, и мы часто этим пользуемся.
Но где определено правило преобразования QString в QPixmap(QString) или в QImage(QString) или в другой тип ?
Этоже уже контекстно зависимое преобразование, как в бестиповых и скриптовых языках!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 3.12.2007, 11:23
Сообщение #13


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Я пытаюсь найти описание данного преобразования, просто сам понимаю, а обьяснить не могу...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 3.12.2007, 11:25
Сообщение #14


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

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




Репутация:   6  


Цитата(Darvin @ 3.12.2007, 11:00) *
Цитата(Admin @ 3.12.2007, 8:42) *
Может быть твоя запись неявно преобразуется к следующей:

Это как? Где то по любому должно быть явное определение.


Цитата(Admin @ 3.12.2007, 8:42) *
А ты поставь точку останова на item = new QGraphicsPixmapItem("FileName.jpg"); и посмотри в какой конструктор прыгнешь...

Пока не смог настроить отладчик под Eclipse.

Я так понимаю ты используешь GCC - для того, чтобы настроить отладчик, нужно просто установить его (если у тебя Mingw - Mingw GDB, если Cygwin - соответственно GDB из Cygwin) и прописать в путях... Eclipse его будет видеть - далее тебу просто нужно будет подсказать Eclipse какой именно отладчик ты используешь :)

Цитата(Darvin @ 3.12.2007, 11:47) *
Цитата(ViGOur @ 3.12.2007, 10:35) *
То что ты привел, компилится и в дебагере видно, что при попадении в коструктор MyPixmapItem, неявно вызывается конструктор для QPixmap.


Мда... Спасибо!

Вот интересно. Допустим, я лезу в Ассистент и не нахожу нужного конструктора для какого-нибудь класса.
Похериваю данный факт и пишу по своему. И оно меня понимает! Не пойму, хорошо это или плохо =)))

Eclipse Assistant достаточно тупая штука :) Он криво и не всегда индексирует... не советую ему слишком доверять :-D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 3.12.2007, 11:36
Сообщение #15


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


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

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


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




RSS Текстовая версия Сейчас: 30.1.2025, 5:26