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

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

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

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

05.12.2011, 22:46. Просмотров 651. Ответов 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++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов неконстантной функции класса в mem_fun_ref (C++):

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

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

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

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

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

1
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
05.12.2011, 22:48 #2
Цитата Сообщение от PointsEqual Посмотреть сообщение
почему работает с неконстантной функцией?
Джосююттис в "c++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
а почему не должна бы работать? в чем смысл такого ограничения
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 22:48
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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