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

Функция в качестве аргумента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ свой цвет у каждой переменной http://www.cyberforum.ru/cpp-beginners/thread721843.html
Вопрос такой, можно ли как-то сделать, чтобы у одних переменных(любых) при Debug отображались допустим красным, а другие переменные(тоже любые) отображались зеленым. Если реально, то сделать только с помощью программных средств, без установки плагинов
C++ Строки (В произвольном тексте найти самое короткое слово) Задание: В произвольном тексте найти самое короткое слово. Цель работы: изучение правил описания, ввода-вывода и основных функций обработки символьных данных. http://www.cyberforum.ru/cpp-beginners/thread721839.html
C++ Сортировка вставками объясните алгоритм на примере
Ни как не могу разобрать как работает алгоритм(я понимаю суть, но как это работает именно в программе понять не могу). Объясните пожалуйста поэтапно как будет работать программа (не алгоритм) именно в подчёркнутых строчках для примера "dcab". Сам код для наглядности: void insertSort(int* a, int size) { int i, j, tmp; for (i = 1; i < size; ++i) // цикл проходов, i - номер...
C++ Run-Time Check Failure #0
Как исправить ошибку : Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. Вот код: // ConsoleApplication6.cpp: главный файл проекта. #include "stdafx.h" #include <conio.h> #include "iostream"...
C++ запись в файл (нужен участок кода где поочередно записываются символы из файлов) http://www.cyberforum.ru/cpp-beginners/thread721827.html
Задание: открыть 1-й файл и 2-й для чтения , 3-й для дозаписи. В третий записать поочередно символы из первого и второго файлов. Если в 1-м файле кончаются символы, запись из 2-го продолжается и наоборот. помогите пожалуйста с программой , нужно в общем сам участок кода где поочередно записываются символы из файлов мой код (примитивный, но какой есть) если есть ошибки в нем подскажите где....
C++ Построить график #include <stdio.h> #include <math.h> #define f(x,y) (1.3*x-5.3*sin(x))+(5.3*x+y); void main(){ double x0, x1, y0, y1, h; int i, N; printf ("\n Vvedite x0, y0, h, N: "); подробнее

Показать сообщение отдельно
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100

Функция в качестве аргумента - C++

06.12.2012, 19:27. Просмотров 552. Ответов 14
Метки (Все метки)

Мне нужно написать программу, которая будет включать в себя список, который можно добавлять, проверять его заполнение, а также обрабатывать его элементы (что-то похожее на стек). Так вот, у меня возникла проблема. Мне по заданию необходимо, чтобы функция-элемент вызывала простую функцию для обработки каждого элемента списка (я его представил в виде массива). И лажа в том, что когда я пытаюсь вызвать функцию, мне пишет "необъявленный идентификатор". Короче, вот коды файлов, кому интересно:
заголовочный файл List.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
typedef double Item;
class List
{
private:
    enum {MAX=20};
    Item listing[MAX];
    int top;
public:
    List();
    void add(double t);
    bool isempty() const;
    bool isfull() const;
    void visit(void (*pf)(Item &));
    void show_list() const;
};
функции-элементы:
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
#include <iostream>
using namespace std;
#include "List.h"
List::List()
{
    top=0;
}
bool List::isempty() const
{
    return top==0;
}
bool List::isfull() const
{
    return top==MAX;
}
void List::add(double t)
{
    listing[top]=t;
    top++;
}
void List::visit(void (*pf)(Item &))
{
    int i;
    for(i=0;i<MAX;i++)  {
        (*pf)(listing[i]);
        cout<<listing[i]<<"\n";
    }
}
Основное тело проги:
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
#include <iostream>
using namespace std;
#include "List.h"
int main()
{
    List jake;
    char c;
    double num;
    int id;
    if(jake.isempty())
        cout<<"Stack is empty and ready to work!\n";
    cout<<"Enter A to add to list a number, P to process a list and Q to quit:___\b\b\b";
    while(cin>>c&&toupper(c)!='Q')
    {
        while(cin.get()!='\n')
            continue;
        if(!isalpha(c))
        {
            cout<<'\a';
            continue;
        }
        switch(c)
        {
        case 'a':
        case 'A':   cout<<"Enter a number to add and id massive to work: ";
            cin>>num;
            if(jake.isfull())
                cout<<"List already full!\n";
            else
                jake.add(num);
            break;
        case 'p':
        case 'P':   jake.visit(multip);
            cout<<"After process:\n\n";
            jake.show_list();
            break;
        }
        cout<<"Enter A to add to list a number, P to process a list and Q to quit:___\b\b\b";
    }
    cout<<"Bye!\n";
    system("pause");
    return 0;
}
void multip(Item & st)
{
    st=st*2;
}
Кому интересно, изучите и помогите пожалуйста
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru