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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.98
marat1
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 6
#1

Как вызвать функцию? - C++

01.06.2010, 22:56. Просмотров 7584. Ответов 6
Метки нет (Все метки)

У меня допустим есть уже готовые функции с именами от а0 до а1000

а мне нужно чтобы прога исходя из входных данных сама высчитала число, добавила его к а, и потом запустила соответствующую функцию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2010, 22:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вызвать функцию? (C++):

Как правильно вызвать функцию с указателем на другую функцию как параметр - C++
Вот вариант: double f(double x) { ... } double k(double (*f)(double), double y) { ...

Как правильно вызвать функцию? - C++
Здравствуйте,посдкажите как правильно объявить функцию в private и вызвать ее в классе. Перепишите текст в сообщение. П. 5.18 и 5.19...

Как правильно вызвать функцию? - C++
Добрый день. подскажите как исправить ошибку: TAsync * Async ; Async = new TAsync; ComPort->...

Как вызвать функцию из .h в main ? - C++
Здравствуйте! Помогите решить проблему. У меня есть много маленьких подзадачек в виде функций, которые расписаны в файлах .h и .cpp....

Как вызвать функцию родительского класса? - C++
#include <iostream> using namespace std; class foo{ void somefunc(); public: int i; };

Транспонирование - как вызвать функцию из main - C++
Вроде всё правильно но выдаёт ошибку Unresolved external '_main' referenced from C:\PROGRAM FILES...

6
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
02.06.2010, 01:09 #2
Если у них сигнатуры одинаковые то вполне логично юзать указатель на функцию
Первое что в голову пришло, хотя я бы от такого кода воздержался в реальных разработках
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define FUNC(num) &print##num
using namespace std;
 
void print1()
{
    cout << "print1" << endl;
}
void print2() 
{
    cout << "print2" << endl;
}
 
typedef void (*funcPtr)(void);
 
int main()
{
    funcPtr func = FUNC(1);
    (*func)();
    system("pause");
    return 0;
}
1
marat1
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 6
02.06.2010, 15:34  [ТС] #3
а мне нужно чтобы в 17 строке
funcPtr func = FUNC(1);
я вместо 1 мог указать какуюто переменную
скажем FUNC(ss);
а он сразу говорит что printss незадекларированная
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
02.06.2010, 18:19 #4
Цитата Сообщение от marat1 Посмотреть сообщение
У меня допустим есть уже готовые функции с именами от а0 до а1000
Честно говоря уже попахивает извращением... Для чего такое понадобилось, если не секрет?
Цитата Сообщение от marat1 Посмотреть сообщение
а мне нужно чтобы прога исходя из входных данных сама высчитала число, добавила его к а, и потом запустила соответствующую функцию
Массив указателей на функции...
1
marat1
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 6
02.06.2010, 19:16  [ТС] #5
rangerx просту у меня есть функция которая должна в свою очередь запускать иные уже готовые функции. каждый раз изходя из вводных параметров имя фукции меняется
пример

если переременная а = 10
то нужно запустить функцию b10()


может ето дело кто нибуть перевести ето дело в рабочий, минимальній код..... Пожалуйста, я новичок.

Добавлено через 19 минут
rangerx просту у меня есть функция которая должна в свою очередь запускать иные уже готовые функции. каждый раз изходя из вводных параметров имя фукции меняется
пример

если переременная а = 10
то нужно запустить функцию b10()


может ето дело кто нибуть перевести ето дело в рабочий, минимальній код..... Пожалуйста, я новичок.

Добавлено через 27 минут
Manjak а что ты можешь сказать?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
03.06.2010, 00:11 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
void a0(){ puts("in a0"); }
void a1(){ puts("in a1"); }
void a2(){ puts("in a2"); }
 
typedef void (*pFunc)();
 
int main()
{   
   pFunc func[3] = {a0, a1, a2};
   
   func[0]();
   func[1]();
   func[2]();
   return 0;
}
но я с трудом представляю себе программу с 1000 таких функиций...
1
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
03.06.2010, 14:03 #7
Можно дико извратиться со смещениями в памяти и искать так функции, но это уже неимоверный изврат
0
03.06.2010, 14:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2010, 14:03
Привет! Вот еще темы с ответами:

Написал функцию и не знаю как ее вызвать - C++
Глупая ситуация. :) Написал функцию, которая транспонирует двумерную матрицу и не могу ее . Компилятор ругается на передачу массива. Что я...

Как правильно вызвать эту функцию? - C++
int sum(int a, int b) { return a + b; } Варианты ответов: 1. sum ( int 7, int 8 ); 2. int sum(int a = 7, int b = 8); ...

Как вызвать функцию через указатель? - C++
Добрый день. Всех с наступающим))Здоровье Счастье и бабок))) Подскажите как правильно сделать Тестовый рабочий пример struct AmiVar ...

Как вызвать функцию из функции main? - C++
работаю в деве. предположим я создал проект, изначально в нем находится файл main.cpp. предположим я создал в нем еще один файл с именем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru