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

Работа с классами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Stack со сменой представления http://www.cyberforum.ru/cpp-beginners/thread950742.html
Здорова господа!!! Есть задачка: "Напишите класс Stack, для которого можно сменить представление на стадии выполнения программы. Подсказка: "Любую проблему можно решить введя еще один уровень косвенности" " Тут не понятно что нам нужно сделать. Рассмотрим просто теоретически, допустим есть у нас класс Stack и нам что нужно от него по создавать производные классы допустим А и допустим B....
C++ Нужен кусок кода Привет всем, даже не знаю сюда ли обратился.....В общем нужен код который выполняется с момента нажатия в браузере например мозиллы CTRL+U. Где мне его взять? Если у кого есть напишите пожалуйста! Думаю я что там не так уж и много написано ). Ну или просто подскажите как выудить исходный код страницы, как это делается? http://www.cyberforum.ru/cpp-beginners/thread950736.html
C++ Работа с com port
подскажите пожалуйста!! написал программку, отправляет запрос на устройство пакет данных (без контрольной суммы), должен придти ответ и записаться в массив!порт открывается, отправляю данные, НЕ КОРРЕКТНО работает readfile() Не пойму в чем ошибка () #include <windows.h> #include <iostream> using namespace std; HANDLE hCom;
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются C++
Дано некоторое число. Вставить его перед каждым восклицательным знаком. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл в ней выполняет,заранее спасибо)
C++ Необходимо написать и отладить две программы в среде Borland C++ 3.1. Первая программа должна сформировать двоичный файл. Вторая – считать данные из э http://www.cyberforum.ru/cpp-beginners/thread950714.html
Создать двоичный файл и записать в него n целых чисел. Из файла сформировать массив, записав в него только ненулевые компоненты, находящиеся после максимального элемента. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл в ней выполняет,заранее спасибо)
C++ Необходимо написать и отладить программу в среде Borland C++ 3.1 по заданному варианту с обязательным применением динамических массивов и функций Упорядочить элементы вещественного массива следующим образом: по возрастанию элементы, расположенные в массиве до минимального, по убыванию элементы, расположенные после максимального. Создать функции для сортировки массива и определения номеров максимального и минимального элементов. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл... подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.09.2013, 18:52  [ТС]     Работа с классами
Цитата Сообщение от ForEveR Посмотреть сообщение
Аргумент функции должен быть void* (вашем случае arg должен быть typedef не на string, а на void), тогда все станет понятно.
И что оно мне дает?

Добавлено через 10 минут
от изменил и все рамно не понятно:
Кликните здесь для просмотра всего текста
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
#include <vector>
using std::vector;
 
typedef string id;//иднтификаторы
typedef void arg;//аргумент
typedef void (*PF)(arg);//указатель на функцию
 
class Oper
{
    friend class Cat_object;
    friend class Stack;
    id ident;
    PF p_f;
public:
    Oper(id s, PF yk):ident(s),p_f(yk){}
};
 
class Cat_object
{
    friend class Stack;
    vector<Oper> l;
public:
    Cat_object(){}
    void add_oper(Oper o)
    {
        l.push_back(o);
    }
    void remove_oper_id(id ii)
    {
        vector<Oper>::iterator it;
        for(it=l.begin();it!=l.end();++it)
        {
            if((*it).ident==ii){l.erase(it);break;}
        }
    }
    void operator()(id ii)
    {
        for(int i=0;i<l.size();i++)
        {
            if(l[i].ident==ii)
            {
                l[i].p_f();//выполнение
            }
        }
    }
    int size(){return l.size();}
};
 
class Stack : public Cat_object
{
public:
    Stack(){};
    void push(Oper o){add_oper(o);}
    void pop()
    {
        if(l.size()!=0)
        {
            operator()(l.back().ident);
            l.erase(--l.end());
        }
    }
};
 
void print1(arg){cout <<"print1 arg= "<<endl;}
void print2(arg){cout <<"print2 arg= "<<endl;}
void print3(arg){cout <<"print3 arg= "<<endl;}
 
int main()
{
    Oper o1("one",print1);
    Oper o2("two",print2);
    Oper o3("three",print3);
 
    Cat_object c;
    c.add_oper(o1);
    c.add_oper(o2);
    c.add_oper(o3);
    cout <<"c.size()= "<<c.size()<<endl;
    c.remove_oper_id("one");
    cout <<"c.size()= "<<c.size()<<endl;
 
    c("two");
    c("three");
 
    Stack s;
    s.push(o1);
    s.push(o2);
    s.push(o3);
    s.pop();
    s.pop();
    s.pop();
 
 
    return 0;
}
 
Текущее время: 19:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru