|
7 / 7 / 3
Регистрация: 17.04.2014
Сообщений: 156
|
||||||
Как перегрузить методы, чтобы получились аналоги get set из C#12.10.2015, 22:15. Показов 7044. Ответов 75
Метки нет (Все метки)
Как можно перегрузить методы, что бы получился аналог get set из C#. Т.е. что то такое:
0
|
||||||
| 12.10.2015, 22:15 | |
|
Ответы с готовыми решениями:
75
Как сделать, чтобы из числа, допустим, 0,040005000 после 5 получились звёздочки Std::set с кастомным классом, как правильно перегрузить оператор < ? Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов? |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 12.10.2015, 23:33 | |
|
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 12.10.2015, 23:33 | |||||||
1
|
|||||||
|
7 / 7 / 3
Регистрация: 17.04.2014
Сообщений: 156
|
|||||||
| 12.10.2015, 23:33 [ТС] | |||||||
|
Например у меня есть класс с несколькими переменными:
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 12.10.2015, 23:38 | |
|
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 12.10.2015, 23:43 | ||
|
0
|
||
|
7 / 7 / 3
Регистрация: 17.04.2014
Сообщений: 156
|
||||||||||||||||
| 12.10.2015, 23:52 [ТС] | ||||||||||||||||
|
Пока что вот это кажется самым близким к ответу:
0
|
||||||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 12.10.2015, 23:55 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 13.10.2015, 00:00 | |||
|
другое дело, что они просто не востребованы. поддерживаются ещё с незапамятных времен.
0
|
|||
|
7 / 7 / 3
Регистрация: 17.04.2014
Сообщений: 156
|
|||
| 13.10.2015, 00:01 [ТС] | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 13.10.2015, 00:13 | |||
|
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
| 13.10.2015, 00:28 | ||||||
|
1. нет. не живут. 2. проперти там нафиг не упали. дело в том, что они не дают ровным счетом никакого профита в сравнении с самыми обычными геттерами/сеттерами. в них просто нет смысла. либо вы опять начали тупить. крестовых указателей на функцию-член объекта не существует в природе. их умеют все компиляторы ещё с бородатых времен. и не имеет никакого отношения ни к указателям на функцию-член, ни к шаблонам. в общем, вы опять начинаете нести бред.
0
|
||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 13.10.2015, 00:45 | |||||
|
Добавлено через 5 минут Второй профит - управление доступом к полям на чтение запись. Read only поля к примеру, без излишнего в таком случае вызова геттера. Ну и то без чего не обойдется визувльное проектирование в принципе - эти таблички подстановки записываются компилятором в RTTI и используются инспектором объектов для визуального редактирования. Добавлено через 3 минуты
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||
| 13.10.2015, 00:57 | |||||||||||||||||
|
потому что правила языка. именно поэтому, не существует указателей-на-функцию-член, без указания класса, к которым относятся функции-члены. не путайте понятие "указатель на функцию-член" и "делегат". ваш returntype (__closure *Proc)(arglist); только выглядит как указатель. на самом деле это - делегат. довольно таки жалкий по своим возможностям. но все таки, это - делегат, а не member-function-pointer. там под капотом целая механика по связыванию объекта с указателем-на-функцию-член. на языке с++ существует стандартный делегат: std::function, который предоставляет богатые возможности по части любых связок как для свободных функций, так и для функций-членов, и для лямбд, и для любых других функторов. Добавлено через 7 минут и привычнее. в любой цивилизованной идешке можно вбить:
уберите префиксы "set"/"get" , и получите зоопарк имен. и это плохо для читабельности. выглядит как доступ к обычному полю класса, но на самом деле под капотом те же самые сеттеры/геттеры. здесь нет выигрыша в эффективности. с точки зрения оптимизации:
в обоих случаях все прекрасно inline. и нет никаких лишних вызовов. но формошлепству это как то так особе не помешало. ну-ну.
0
|
|||||||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 13.10.2015, 00:59 | |||
|
У Бъерна явно с ООП всегда туго было. А то бы сразу понял что биндинг чего либо к делегату избыточен, все что ему передается должен передавать вызывающий, а весь этот шаблонно-лямбдовый синтаксис опять же тоже только ухудшает читабельность и ведет к ошибкам. А вот указатели которые называются указателем на члены (с указанием типа класса) действительно не востребованы. За 20 лет которые С++ колупаю ни разу не встречал чтобы где то применялись. Добавлено через 1 минуту
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 13.10.2015, 01:00 | |||
|
не взирая на тот факт, что какой нибудь qt и без всякой рефлексии формошлепит, только в путь.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 13.10.2015, 01:12 | ||||||||
Добавлено через 5 минут
0
|
||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||
| 13.10.2015, 01:15 | |||||||||||||
|
во времена доса его ещё не существовало. std::function вошел в стандарт начиная лишь с++11. std::function и есть делегат. он умеет цеплять любые функциональные объекты: функции, функции-члены, лямбды, функторы. ему пофигу анонимное оно там, или нет. может цеплять как по значению, так и по ссылкам. вы сами поняли, что за бред написали, и как это коррелирует с реальным положением дел? или лямбды? что именно в следующей строке вам трудно прочитать?
использует их у себя под капотом, например. Добавлено через 1 минуту так вы покажите пример рантайм-рефлексии? или это так, пустые слова?
0
|
|||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||||||||||||
| 13.10.2015, 07:04 | ||||||||||||||||||||||||||
|
Добавлено через 2 минуты вызов ассемблируется на прямую. Добавлено через 2 минуты Добавлено через 5 минут Добавлено через 19 минут А передача указателя именно на метод требуется тогда когда класс-подписчик неизвестен вызывающему классу, т.е на каждом шагу. А что касается правила языка, то правила алгоритмического языка растут из потребностей программистов. Если стандарт отстал от жизни лет на 20 то это проблемы комитета и тех производителей компиляторов которые тупо следуют стандарту. Никакие темплейты и стандартизация бибилиотек в дальнейшем развитии языка не помогут, если игнорировать эффективные и насущные потребности в расширении синтаксисиа. Добавлено через 16 минут А то не комитет по стандартизации получается а отдел сбыта фирмы Dinkumware Добавлено через 14 минут Добавлено через 11 минут Причина в принципе понятна. Но не понятно что они еще пытаются выжать из такого вспомогательного средства как шаблоны. Шаблоны нельзя ставить во главу угла так как компайл-тайм полиморфизм никогда не заменит ран-тайм полиморфизм. Поэтому основой должно быть ООП, а соответсвенно устранение в стандарте недоделок в плане синтаксиса свойств и делегатов и стандартизации рефлекшина, а шаблоны - вспомогательное средство. Но при таком подходе Dinkumware в трубу вылетит. Добавлено через 24 минуты Добавлено через 5 минут Пример:
Добавлено через 1 час 10 минут Obj.Value++; чем Obj.SetValue(Obj.GetValue()+1); По этому эффективность в скорости набора кода и читабельности алгоритма налицо. Мне деньги платят за безошибочно работающий функционал. А вам наверное за количество символов в коде? Добавлено через 25 минут
0
|
||||||||||||||||||||||||||
| 13.10.2015, 07:04 | |
|
получить все комбинации по парам x y, чтобы получились следующие массивы Из каждого предложения удалить знаки препинания чтобы получились лексемы Как перегрузить оператор = , чтобы ф-ция была дружественной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Задача:
Программно добавить префикс в нумерацию документов в самописной конфигурации на БСП (помощь начинающему коллеге).
Решение:
В модуле объекта документа размещен следующий код:
Процедура. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|