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

функция может вызывать другую функцию? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание объекта http://www.cyberforum.ru/cpp-beginners/thread238565.html
Чем отличается Class_A* a=new Class_A(); от Class_A a; ?
C++ Блок-схема Помогите написать блоксхему http://www.cyberforum.ru/cpp-beginners/thread238549.html
Оптимизация. Лишняя информация в решении C++
Суть задачи заключалась в отыскании четных и нечетных значений массива, найти их сумму. Задачу решил. #include <iostream> using namespace std; int main(){ int cS=0,nS=0; const int size=10; int a;
C++ Наследование или создание класса в классе?
У меня есть класс А и класс Б. В классе А я хочу создать объекты класса Б. Как лучше это сделать? Или лучше использовать наследование?
C++ дальше - через enter http://www.cyberforum.ru/cpp-beginners/thread238509.html
диалог между пользователем-программой программа что-то пишет пользователю пользователь это все прочитал нажал энтер программа опять что-то пишет пользователю т.е. энтер это как разрешение на продолжение диалога
C++ КЛАССЫ Очень нужна помощь!!! подскажите где ошибки: #include <iostream> #include <windows.h> char* Rus(const char* text); using namespace std; class proverka { подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
05.02.2011, 18:32     функция может вызывать другую функцию?
Может, ТС имел в виду вызов переданной в качестве аргумента функции? Вот пример (простой целочисленный калькулятор):

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h>
#include <stdlib.h>
 
#define CNT 4
 
typedef int (*oper)(int, int);
 
int o_add(int, int);
int o_sub(int, int);
int o_mul(int, int);
int o_div(int, int);
 
oper operators[CNT] =
{
    o_add,
    o_sub,
    o_mul,
    o_div
};
 
void processAction(int, int, oper);
 
int main()
{
    int action;
    int arg1, arg2;
        
    while(1)
    {
    puts("Select an action:\n"
         "\t1. addition\n"
         "\t2. subtraction\n"
         "\t3. multiplication\n"
         "\t4. division\n"
         "or something else to exit...");
    
    
    while((action = getchar()) == '\n' || action == EOF)
        ;
        
    if(action < '1' || action > '4')
        exit(0);
    
    puts("Input arguments");
    scanf("%d %d", &arg1, &arg2);
 
    processAction(arg1, arg2, operators[action - '1']);
    puts("And one more time...\n");
    }
    
    exit(255);
}
 
int o_add(int a1, int a2)
{
    return a1 + a2;
}
 
int o_sub(int a1, int a2)
{
    return a1 - a2;
}
 
int o_mul(int a1, int a2)
{
    return a1 * a2;
}
 
int o_div(int a1, int a2)
{
    if(a2 == 0)
    {
    fputs("Error: division by zero\n", stderr);
    exit(1);
    }
    
    return a1 / a2;
}
 
void processAction(int a1, int a2, oper o)
{
    printf("Given arguents are `%d' and `%d', and the result is `%d'\n", a1, a2, o(a1, a2));
}
 
Текущее время: 20:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru