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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание классов в С++ http://www.cyberforum.ru/cpp-beginners/thread399805.html
Помогите пожалуйста с задачей: Определить 2 класса – базовый и производный (деталь, механизм, изделие, узел), используя простое наследование. Описать конструктор по умолчанию, конструктор с...
C++ Помогите составить программу в текстовом файле подсчитать количество строк кот начинаются и заканчиваются на одну и ту же букву http://www.cyberforum.ru/cpp-beginners/thread399804.html
C++ из Паскаля в с++
помогите написать эту программу на с++ Program zzz; function nod(a,b:integer):integer; Begin While a<>b do If a>b Then a:=a-b Else b:=b-a; nod:=a; End;
проверьте правильность пожалуйста!!! C++
нужно найти наименьшее число у, которое делится на те же простые числа, что и х. это написано в общем виде, нам так надо)Предмет такой) Alg Od; arg x; min=x*x; y=x*x-1; c=2; while 2<y do...
C++ Ошибка при использовании STL http://www.cyberforum.ru/cpp-beginners/thread399791.html
Начал знакомиться с STL, и возникли проблемы. Вот суть: Имеется дочерний класс, одно поле которого является динамическим массивом. При попытке описать функцию, которая заполняет массив, компилятор...
C++ Map'ы Здравствуйте! Пожалуйста объясните как пользоваться мапами? Реализация, считывание и т.д подробнее

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

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

05.12.2011, 22:46. Просмотров 655. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru