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

ifdef и Ко, указатели в фунциях - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пара вопросов по С++ http://www.cyberforum.ru/cpp-beginners/thread153956.html
возникло несколько вопросов, с которыми что то не могу никак разобраться 1. Как происходит выравнивание при создании структуры? struct { double a; int b; char c;}; struct { char a; int b;...
C++ Обработка log-файла Добрый вечер! Ребята, столкнулся с проблемой, и никак не могу найти ей элегантное решение. В голове крутится всякое, но четко понять не могу. Кроме того, хочется определенной красоты решения. Суть... http://www.cyberforum.ru/cpp-beginners/thread153931.html
C++ Подстрока
Всем Приветы, вопрос на сейчас такой: Как получить подстроку из данной строки, если данная задаётся пользователем? Вот пример: #include <iostream> using namepace std; int main(){ char...
C++ Замена повторов в массиве
Имеется рандомный одномерный массив. Необходимо подсчитать количество повторяемых чисел, стоящих радом и заменить их. Например: дано: 5 -6 8 8 8 12 -62 0 0 0 0 0 0 0 6 12 8 -9 0 1 заменить на:...
C++ Классы / наследование / полиморфизм http://www.cyberforum.ru/cpp-beginners/thread153908.html
Решите, если несложно, программа вроде довольно простая..., но с с++, я пока неочень... Добавлено через 36 минут вот что я написал..., а с инициализацией и полиморфизмом непонятно :wall: class A...
C++ Прошу проконсультировать Добрый вечер!) меня поситила волнующая идея, так как учусь на програмера и что важно хочу этого сам. в общем хочу начать разработку приложений до начала обучения. Мне стало известно что мы будем... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
16.07.2010, 14:44
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int add(int a, int b)
{
    return a+b;
}
 
int operation(int a, int b, int (*ptr)(int, int))
{
    return ptr(a, b);
}
 
int main(void)
{
    int (*pfunc)(int, int) = &add;           //Указатель на функцию add
    std::cout << operation(4, 6, pfunc) << std::endl;//передается функции operation
    system("pause");
    exit(EXIT_SUCCESS);
}
Добавлено через 9 минут
Можно упростить предыдущий пример, используя ключевое слово typedef:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
typedef int (*funcPtr)(int, int);//Определяем псевдоним для указателя на функцию
 
int add(int a, int b)
{
    return a+b;
}
 
int operation(int a, int b, funcPtr ptr)
{
    return ptr(a, b);
}
 
int main(void)
{
    funcPtr pfunc = &add;                       //Указатель на функцию add
    std::cout << operation(4, 6, pfunc) << std::endl;   //передается функции operation
    system("pause");
    exit(EXIT_SUCCESS);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru