0 / 0 / 2
Регистрация: 28.03.2014
Сообщений: 8
|
||||||
1 | ||||||
Шаблоны и функторы как callback для класса свойства объекта. Код работает - но не должен14.09.2015, 15:39. Показов 1570. Ответов 8
Метки нет Все метки)
(
Здравствуйте!
Хочу написать реализацию класса свойства на шаблоне. Т.е есть объект, он инициирует необходимые проперти, в графическом представлении это может быть текстовое поле или combobox, при изменении которого вызывается необходимый функтор. Рабочий код:
0
|
14.09.2015, 15:39 | |
14.09.2015, 15:39 | |
Ответы с готовыми решениями:
8
Метод класса не работает как callback-функция
|
14.09.2015, 15:55 | 2 |
Потому что функции это не данные. Функция есть в файле? Всё что нужно для её вызова есть? Если ответ на оба вопроса утвердительный, то метод будет вызван. Фактически ты обращаешься к информации, получаемой из класса, а не объекта.
0
|
0 / 0 / 2
Регистрация: 28.03.2014
Сообщений: 8
|
|
14.09.2015, 16:03 [ТС] | 3 |
Пока файл один. Что нужно для ее вызова - здесь немного недогоняю? Но мне кажется, я что-то не так делаю здесь - возможно нужно что-то подправить, чтобы небыло обращения по m_sender, который = 0xCCCCCC ? Можете подсказать?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
||||||
14.09.2015, 17:01 | 5 | |||||
Потому что у тебя нет обращения к данным ClassName. Указатель this передается в холостую и фактически не используется.
Конечно неправильно. Ты должен по крайней мере инициализировать m_sender в конструкторе. Кликните здесь для просмотра всего текста
0
|
0 / 0 / 2
Регистрация: 28.03.2014
Сообщений: 8
|
||||||
14.09.2015, 17:35 [ТС] | 6 | |||||
Avazart - почти то что я хочу, но функторы позволят явно указывать setter'ы и getter'ы и не только. Меня вообще волнует именно возможность указать переменное число аргументов в
шаблоне. DrOffset - спасибо! Да я в конструкторе CProperty пробовал инициировать функторы как m_getter(this) и компилятор падал при попытке собрать код. А вообще, если смотреть взглядом опытного человека - моя реализация имеет право на существование ? Может быть есть "подводные камни", которые я не вижу? Окончательный вариант:
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
14.09.2015, 17:49 | 7 |
Да все имеет, пока в продакшен не идет
![]() Ладно - это шутка. Если серьезно, то предлагаю начать с вариантов использования твоего решения. Напиши себе примеры так, как будто все уже сделано, с точки зрения пользователя. Тогда подводные камни и неудобства сразу будут видны. Для обучения эта задача вполне подойдет.
0
|
14.09.2015, 19:08 | 9 |
0
|
14.09.2015, 19:08 | |
14.09.2015, 19:08 | |
Помогаю со студенческими работами здесь
9
Производный класс Самоорганизующаяся таблица должен наследовать свойства и методы класса Таблица Как задать значение по умолчанию для свойства класса Как отменить свойства только для одной го элемента из класса? Один и тот же код на С++ и С#, Шаблоны, отображение содержимого шаблонного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Микросервис с нуля на Go с Kafka
stackoverflow 12.02.2025
Когда я впервые столкнулся с необходимостью разделить монолитное приложение на микросервисы, передо мной встал вопрос выбора правильных технологий и подходов. После долгих экспериментов с различными. . .
|
Микросервис с нуля на C# с RabbitMQ
stackoverflow 12.02.2025
Переход от монолитной архитектуры к микросервисной - это не просто модное веяние, а закономерный этап эволюции программных систем. В отличие от монолита, где все компоненты тесно связаны между собой. . .
|
Docker для начинающих
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения все чаще возникает необходимость быстро и надежно разворачивать приложения в различных средах. Разработчики постоянно сталкиваются с проблемой. . .
|
Создание бота для Телеграм на C#
stackoverflow 12.02.2025
В современном мире корпоративных коммуникаций Telegram-боты становятся незаменимым средством автоматизации бизнес-процессов и взаимодействия с сотрудниками. Как создать такого бота, который сможет. . .
|
Операторы сравнения (== и ===) в JavaScript
hw_wired 12.02.2025
JavaScript предоставляет два основных оператора сравнения - оператор нестрогого равенства (==) и оператор строгого равенства (===). На первый взгляд они могут показаться очень похожими, но их. . .
|
Определение адреса, откуда репозиторий Git был клонирован
hw_wired 12.02.2025
Система контроля версий Git хранит всю информацию о репозитории в специальной директории . git, включая данные об удаленных источниках. Эта информация необходима для синхронизации изменений между. . .
|
Объединение нескольких коммитов Git в один
hw_wired 12.02.2025
Представьте, что вы работаете над новой функциональностью и создали десяток небольших коммитов: исправление опечатки, форматирование кода, добавление комментариев, реализация основной логики. Каждый. . .
|
Как добавить локальную ветку в удалённый репозиторий Git
hw_wired 12.02.2025
Локальная ветка в Git - это изолированная линия разработки, существующая только на вашем компьютере. Представьте себе дерево с множеством веток - каждая ветка может расти в своем направлении, не. . .
|
Статическое отражение в C++
stackoverflow 12.02.2025
Статическое отражение представляет собой мощный механизм, позволяющий программам анализировать и манипулировать своей собственной структурой во время компиляции. Эта возможность открывает. . .
|
C++ в 21 веке - Бьярне Страуструп
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения C++ продолжает оставаться одним из ключевых языков программирования, несмотря на свой солидный возраст - более 45 лет с момента создания. За это. . .
|