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

Указатель на функцию и функциональный класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача динамического двухмерного массива в функцию http://www.cyberforum.ru/cpp-beginners/thread995905.html
Всем добрый вечер. Я понимаю, что эта тема поднималась не раз, но хочу еще раз спросить т.к. конечного решения так нигде и нет. Вот моя программа, которая должна считывать информацию из файла изображения, помещать её в массив и затем записывать в новый файл. # include <stdio.h> # include <Windows.h> //Структура пикселя struct pixel { unsigned char b;
C++ Посчитать количество запятых Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке. Нужно написать программу. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread995903.html
C++ Массивы. Обнулить элементы столбцов
Здравствуйте! Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием, желательно с объяснением, ибо чайник полный.. Написать программу на языке C++ в среде Microsoft Visual Studio 2010 C++. Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных данных. Задача: Дан двухмерный массив A и...
Передать итератор на шаблонный вектор в функцию C++
Здравствуйте. Есть два вектора std::vector<Player> players; // Player - структура с двумя полями std::vector<size_t> indices; Я хочу написать функцию сортировку, в которую можно было бы передать любой из этих массивов: Если бы у меня были массивы, я бы написал:
C++ Код из книги выдаёт ошибку http://www.cyberforum.ru/cpp-beginners/thread995884.html
Код из книги выдаёт ошибку. Использую Visual Studio 2010 Exspress //: CO3:Forward.cpp // Опережающие объявления функций и данных //Page 120 #include<iostream> using namespace std; //Объявления не являются внешними в нормальном смысле. //но компилятор должен знать о том, что они где-то существуют: extern int i;
C++ Из массива удалить четные элементы Здравствуйте. Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием. Написать программу на языке C++ в среде Microsoft Visual Studio 2010 C++. Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных данных. Задача: Из массива удалить четные элементы, стоящие после максимального. Пример: из... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
03.11.2013, 03:39     Указатель на функцию и функциональный класс
Цитата Сообщение от akk Посмотреть сообщение
Моя идея идея была реализовать с функциональным классом что-то подобное
Подобное чему? std::function? Что в итоге от этого изменится в результирующем коде?
Можно и так сделать, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Func
{
public:
    virtual int operator()(int, int){return 0;};
};
 
class A: public Func
{
public:
    virtual int operator()(int a, int b) {return a+b;}
};
 
class B: public Func
{
public:
    virtual int operator()(int a, int b) {return a-b;}
};
 
int main()
{
    std::map<std::string, Func*> funcs;
    funcs["one"] = new A();
    funcs["two"] = new B();
    std::cout<<(*funcs["one"])(4, 5)<<std::endl;
    std::cout<<(*funcs["two"])(4, 5)<<std::endl;
Ну, да ладно, фиг с этой задачей, я слишком плохо понимаю твои цели, мысли и мотивы.

Добавлено через 2 минуты
Цитата Сообщение от akk Посмотреть сообщение
std::function - это альтернатива указателям на функцию
Нет.
Цитата Сообщение от akk Посмотреть сообщение
эквивалентны.
Там, где у тебя указатель на функцию, попробуй передать объект.
 
Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru