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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание классов в С++ http://www.cyberforum.ru/cpp-beginners/thread399805.html
Помогите пожалуйста с задачей: Определить 2 класса – базовый и производный (деталь, механизм, изделие, узел), используя простое наследование. Описать конструктор по умолчанию, конструктор с параметрами, копирующий конструктор для базового и производного классов. Описать геттеры и сетторы для базового и производного классов. Описать функцию Show() в производном классе. Базовый класс должен...
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 while c<x+1 if x%c =0 then
C++ Ошибка при использовании STL http://www.cyberforum.ru/cpp-beginners/thread399791.html
Начал знакомиться с STL, и возникли проблемы. Вот суть: Имеется дочерний класс, одно поле которого является динамическим массивом. При попытке описать функцию, которая заполняет массив, компилятор начинает ругаться. Это собственно сам класс: #ifndef _GUARD_SHIP_H_ #define _GUARD_SHIP_H_ #include <iostream> #include <vector> #include "stdafx.h" #include "Ship.h"
C++ Map'ы Здравствуйте! Пожалуйста объясните как пользоваться мапами? Реализация, считывание и т.д подробнее

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

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

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