Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Вызов неконстантной функции класса в mem_fun_ref - C++

05.12.2011, 22:46. Просмотров 631. Ответов 1
Метки нет (Все метки)

Привет.

мне нужно вызвать функцию класса в mem_fun_ref, но ей, как известно требуется чтобы передаваемая функция класса была константной.

Но в моем случае нельзя сделать метод константным. Что делать? Из-за этого юзать обычный цикл?

Добавлено через 5 минут
вот ошибка, которая мне кажется связана именно с констнтностью

Код
d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_algo.h:4200: ошибка: no match for call to '(std::binder2nd<std::mem_fun1_ref_t<void, shape::cShape, QPainter*> >) (shape::cShape*&)'

d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/backward/binders.h:146: candidates are: typename _Operation::result_type std::binder2nd<_Operation>::operator()(const typename _Operation::first_argument_type&) const [with _Operation = std::mem_fun1_ref_t<void, shape::cShape, QPainter*>]

d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/backward/binders.h:152:                 typename _Operation::result_type std::binder2nd<_Operation>::operator()(typename _Operation::first_argument_type&) const [with _Operation = std::mem_fun1_ref_t<void, shape::cShape, QPainter*>]
Добавлено через 14 минут
таак, ошибка оказывается была не в константности, просто надо вызвать mem_fun,у меня же указатель на объект.

Но теперь другой вопрос:
почему работает с неконстантной функцией?
Джосьютис в "c++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 22:46     Вызов неконстантной функции класса в mem_fun_ref
Посмотрите здесь:

Вызов функции из класса - C++
есть функция объявленная в классе Calendar void calendar::menu_k() { cout&lt;&lt;&quot;\n\n&quot;; set_color(cGREEN); cout&lt;&lt;&quot;МЕНЮ&quot;&lt;&lt;endl; ...

Вызов функции в шаблоне класса - C++
Выполняю,через шаблоны класса. Вообщем,в меню не могу вызвать функции. Скажите,все ли правильно в вызове функций? вот файл .h ...

Вызов функции класса по каллбеку - C++
Хочу реализовать возможность вызова метода класса по каллбеку. Сделал такой класс: class ICallable { public: ICallable ();...

Вызов функции по указателю из класса - C++
Такой расклад. Допустим имеем код: #include &lt;iostream&gt; using namespace std; template &lt;class _Tp&gt; class my_mem_fun_t { ...

Вызов функции вне класса - C++
Есть класс, в нем два метода. В одном из них надо вызвать функцию, которая расположена вне класса. Как зделать?? Можете на примере...

вызов статичной функции класса - C++
Добрый день. Не могу изменить класс так, чтобы можно было вызывать функцию непосредственно из класса не создавая новый объект класса. ...

Вызов функции класса. Чего-то не допонял - C++
1&gt;d:\с++ файл\1.5.1\1.5.1\1.5.1.cpp(136): error C2352: Man::ChangeName: недопустимый вызов нестатической функции-члена 1&gt; d:\с++...

Вызов функции родительского класса в наследнике - C++
Подскажите, пожалуйста, можно ли вызвать функцию родительского класса если в наследнике уже есть функция с таким же именем? Если да, то как...

Вызов функции из основного класса в наследуемом - C++
Есть класс. По нему создан наследственный класс. Как использовать функцию из основного класса в наследственном?

Вызов глобальной функции из объекта класса - C++
Здравствуйте! Допустим, к примеру, имеется класс, который может хранить в себе адрес на функцию, а также метод который &quot;запустит&quot; эту...

Не работает вызов виртуальной функции из класса потомка - C++
Есть код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;list&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &lt;sstream&gt; ...

Вызов функции-члена класса по адресу в памяти - C++
Всем хорошего дня :) Допустим, что где-то есть static функция, не принимающая аргументов и ничего не возвращающая. Имея один лишь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
05.12.2011, 22:48     Вызов неконстантной функции класса в mem_fun_ref #2
Цитата Сообщение от PointsEqual Посмотреть сообщение
почему работает с неконстантной функцией?
Джосююттис в "c++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
а почему не должна бы работать? в чем смысл такого ограничения
Yandex
Объявления
05.12.2011, 22:48     Вызов неконстантной функции класса в mem_fun_ref
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru