21 / 21 / 7
Регистрация: 06.10.2008
Сообщений: 173
|
|||||||||||
1 | |||||||||||
Передача указателя на функцию-член класса16.11.2010, 22:05. Показов 7918. Ответов 17
Метки нет (Все метки)
Необходимо передать фунцию-член класса как аргумент в функцию другого класса.
Код: Файл main.cpp
main.cpp|5|error: no matching function for call to 'Class2 :: Do(<unresolved overloaded function type>) Добавлено через 7 часов 48 минут ну неужели нет вариантов?
0
|
16.11.2010, 22:05 | |
Ответы с готовыми решениями:
17
Хранение в map указателя на функцию-член шаблонного класса Указатель на объект из указателя на член класса Перевод указателя на член класса в обычный указатель Передача указателя на шаблонную функцию в другую функцию |
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
16.11.2010, 22:10 | 2 |
3
|
21 / 21 / 7
Регистрация: 06.10.2008
Сообщений: 173
|
|
16.11.2010, 22:18 [ТС] | 3 |
а вот это уже интересно, почитаю) спс тебе.
но идеи всеравно выдвигайте, может что полезное подскажете по этому, типа как надо , как можна , а как нельзя делать...
0
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
16.11.2010, 22:21 | 4 |
Идея — не передавать указатель на метод класса, потому что без экземпляра класса он всё равно работать не будет.
0
|
1 / 1 / 0
Регистрация: 26.10.2014
Сообщений: 74
|
|
11.02.2016, 17:21 | 5 |
Всегда поражаюсь таким ответам, ты бы еще кинул ссылку на google.ru или википедию.
0
|
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
|
|
11.02.2016, 17:27 | 6 |
а как насчет функторов? переопределить круглые скобки, будет объект, действующий как функция.
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
11.02.2016, 17:30 | 7 |
ctakah3112, а надо перенабрать тот текст сюда, чтобы вы прочитали не переходя по ссылкам? Или разобрать статью и выписать только основное вам? Что вам не нравится?!
0
|
07.08.2016, 10:25 | 8 |
Ну как тебе сказать??? Я вот зашёл в Вашу тему полгода спустя и ссылка уже не работает. Терпеть не могу, когда ответы делают ссылками на сторонние ресурсы. По ссылке я не поленюсь перейти, но, как правило, полгода-год спустя она уже не рабочая. И выходит, что ответ на вопрос в теме нашли, но воспользоваться им нельзя. Значит эта данная тема бесполезна на форуме. Только место занимает.
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
07.08.2016, 11:36 | 9 |
А я поражаюсь когда темы 6-годичной давности поднимают...
Зашел 6 лет спустя а не полгода. Уже несколько новых стандартов придумали. Может еще по ссылкам девяностых лазить и жаловаться что там контент устаревший?
1
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
|
07.08.2016, 11:41 | 10 |
Конкретно эта ссылка в целом рабочая, но домен rsdn.ru сейчас недоступен (это починят в ближайшее время).
Вот так будет сейчас работать: http://www.rsdn.org/article/cpp/fastdelegate.xml
0
|
07.08.2016, 11:51 | 11 |
Спасибо. Но суть претензии не меняется: Ответы на форуме должны быть самодостаточными. Что бы тема не становилась бесполезной, в случае поломки ссылки. Всю статью, конечно, копировать не надо, но комментарием снабдить не помешает.
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
07.08.2016, 12:01 | 12 |
НеСказочник, Л - лицемерство. Методы заполнения контейнера
Начните с себя, а потом используйте в своей речи фразы Ответы на форуме должны быть .... Хорошо?
0
|
07.08.2016, 12:43 | 13 |
Согласен. Полное лицемерие, но вот только не с моей, а с Вашей стороны.
Вот моё сообщение, на которое Вы сослались: Тут я даю ссылки: Я не перепечатывал всю статью, что бы не захламлять тему, но и ссылки дал не как есть, а снабдил комментариями, которых вполне достаточно, что бы понять суть решения даже, если ссылки перестали работать.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
07.08.2016, 18:28 | 14 |
по ссылкам не ходил.
ваши комментарии - неверны. emplace_back выполняет конструирование на месте. он для того и был создан, что бы зазря не дергать конструктор копии
0
|
Комп_Оратор)
|
|
07.08.2016, 20:24 | 15 |
ggmann, а можно узнать условие задачи, которая решается таким способом. В самых общих чертах, хотя бы. Есть подозрение, что формулировка задачи ставит объекты, описываемые классами в неудобное положение. Это называется ошибкой архитектуры, обычно. Функции члены, это агенты поведения объектов и передавать их куда либо, это нарушение объектного подхода вообще и инкапсуляции, в частности. Если не идет речь о области видимости класса, конечно. То есть, если для статических данных и методов достаточно дружбы, то без объекта, функцию член передать можно разве что в виде функтора. В этом случае объект тоже передаётся, а вернее бы сказать, что именно объект и передаётся. Но указатель на функтор, - штучка непростая. Посмотрите тут:
https://www.cyberforum.ru/blog... g4325.html может понравится. Но сначала определитесь. Есть подозрение, повторяю, что оно Вам не надо.
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
07.08.2016, 20:28 | 16 |
Не по теме: А можно посмотреть все сообщения этой темы? А можно посмотреть дату создания темы? :D
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
08.08.2016, 10:15 | 18 |
Самые быстрые делегаты, да, это так, идёт прямой вызов непосредственно переданной функции/метода. Полезно изучить как работают вызовы методов в разных компиляторах. Но данная статья скорее показывает несовместимость реализации "указателей" на методы класса (особенно с виртуальным наследованием) между разными компиляторами. Использовать FastDelegate можно на свой страх и риск, так как подобные манипуляции с указателями не стандартизированы (всё опирается на конкретную реализацию компилятора).
Если в программе узким местом является именно некий обратный вызов, то, удостоверившись в совместимости, можно использовать FastDelegate. По моему (скромному) мнению не стоит подобное использовать в написании библиотек и прочего повторно используемого кода. И ещё к FastDelegate не прикрутишь использование lambda и других функторов.
0
|
08.08.2016, 10:15 | |
08.08.2016, 10:15 | |
Помогаю со студенческими работами здесь
18
Передача указателя на строку методу класса Передача члену класса указателя на родителя Передача указателя функции класса A в класс B Передача указателя в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |