operator QString() const |
Здравствуйте, гость ( Вход | Регистрация )
operator QString() const |
Litkevich Yuriy |
19.1.2014, 4:08
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
В недрах Qt4 нашёл две непонятные "функции" в классе QUuid:
Мне непонятно две 3 вещи: 1) Насколько я знаю в С++ нет возможности создавать собственные операторы, что же это? 2) Почему у оператора не определен тип возвращаемого значения? 3) как их применять? П.С. пока рыскал по интернету нашёл опус (programmersclub.ru/24/) какого-то оленя (по моему глубокому убеждению): Цитата Перегрузка оператора состоит в изменении смысла оператора я готов убивать за это.
|
|
|
Litkevich Yuriy |
19.1.2014, 7:18
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Нашёл!
Форма:
Означает оператор приведения типа: Для определенных пользователем преобразований возвращаемый тип задается неявно и совпадает с именем оператора.Т.е. для
а для
|
|
|
ViGOur |
20.1.2014, 8:39
Сообщение
#3
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Litkevich Yuriy |
21.1.2014, 1:20
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ага.
вот как я потерял день копаясь в чужом исходнике: count - по смыслу простой счётчик, но для удобства автора кода имелась перегрузка изменяющая смысл оператора:
|
|
|
ViGOur |
21.1.2014, 11:16
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Нууу, стаким же успехом можно написать и:
В таком случае ты можешь еще больше времени потратить.
|
|
|
Litkevich Yuriy |
21.1.2014, 18:14
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
бить тяжёлым твёрдым предметом по голове, три раза в день до еды.
Я полностью согласен с Саттером и Александреску: Правило: При перегрузке операторов сохраняйте их естественную семантику Исключения: В предметной области соглашения о семантике операторов могут существенно отличаться от Си++ (например, при работе с регулярными выражениями, где operator* имеет смысл - "ноль и большее количество"). из Правила №26, "Стандарты программирования на С++" Герб Саттер, Андрей Александреску. |
|
|
Текстовая версия | Сейчас: 2.1.2025, 21:00 |