Форум программистов, компьютерный форум 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++. Исходные данные задаются путем ввода с клавиатуры. Ответ необходимо вывести на экран с описанием задания, входных и выходных данных. Задача: Из массива удалить четные элементы, стоящие после максимального. Пример: из... подробнее

Показать сообщение отдельно
akk
 Аватар для akk
44 / 44 / 7
Регистрация: 28.01.2012
Сообщений: 341
03.11.2013, 01:23     Указатель на функцию и функциональный класс
Есть такой код, но он не компилируется.
В коде я использую указатель на функцию "Func", что я делаю неправильно? и как это можно записать в виде функционального класса (в комментариях начал его писать, но как его корректно вызвать не могу придумать).

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
26
27
28
29
30
31
32
#include <iostream>
#include <memory>
#include <map>
#include <string>
 
using namespace std;
 
int add(const int &a, const int &b)
{
    return a+b;
}
 
int (*Func)(const int &, const int &);
 
/*
class Func
{
    int operator()(const int &, const int &);
};
*/
int main(int argc, char * argv[])
{
    map<string, Func> * qwe = new map<string, Func>();
    
    qwe->insert(pair<string, Func>("+", add);
    cout<<(*qwe)["+"](5,7);
    
    delete qwe;
    
    cin.get();
    return 0;
}
Добавлено через 29 минут
С указателем на функцию понял в чем была моя ошибка нужно вместо
C++
1
int (*Func)(const int &, const int &);
использовать
C++
1
typedef int (*Func)(const int &, const int &);
Но как тогда сделать это в виде функционального класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru