Конструктор не существует, но работает..., Объясните, как такое может быть? |
Здравствуйте, гость ( Вход | Регистрация )
Конструктор не существует, но работает..., Объясните, как такое может быть? |
Darvin |
3.12.2007, 8:06
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 36 Регистрация: 30.11.2007 Пользователь №: 30 Спасибо сказали: 0 раз(а) Репутация: 0 |
Создаю экземпляр картинки и добавляю его в сцену
item = new QGraphicsPixmapItem("FileName.jpg"); scene.addItem(item); Как видно, я использую конструктор вида QGraphicsPixmapItem(const QString& path); и он работает правильно, картинка загружается и добавляется! Однако, в исходниках нахожу вот такое определение класса QGraphicsPixmapItem, в нем нет такого конструктора. В Ассистенте тоже самое.
Объясните, что это за колдунство? |
|
|
ViGOur |
3.12.2007, 10:59
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Вот пример неявного преобразования, не знаю насколько это по стандарту, нужно будет почитать:
Для того, чтобы не происходило неявного преобразования нужно пользоваться ключевым словом explicit. Это плохо только в том случае, когда ты не понимаешь, что происходит, как в данном случае, соответственно возможен не желательный результат работы твоей программы, особенно если речь идет о приоритетах неявного преобразования. |
|
|
Darvin |
3.12.2007, 11:10
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 36 Регистрация: 30.11.2007 Пользователь №: 30 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот еще бы понять, по каким правилам C++ это происходит. Тоесть как и где определены эти правила и приоритеты.
Сообщение отредактировал Darvin - 3.12.2007, 11:14 |
|
|
Текстовая версия | Сейчас: 15.1.2025, 12:41 |