Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Инфиксная форма записи выражения В файле задано выражение в инфиксной форме записи. В выражении могут быть целые положительные числа, знаки операций(*/+-), скобки. Написать программу, сохраняющую считанное выражение в двоичном дереве( в котором знаки операций будут родительскими вершинами, а числа- листьями), а также вычисляющую результат выражения. Дерево предоставить в виде отдельного класса (или классов). Результат выражения... https://www.cyberforum.ru/ cpp-beginners/ thread1776052.html C++ Не работает замена символов в файле на нижний регистр
Почему не работает код? По идее должен символы в файле заменить на нижний регистр. int main() { string way = "Example.txt"; fstream text; text.open(way, ios_base::in | ios_base::out); while (!text.eof()) { char a; a = text.get();
C++ Локальные имена для файла Локальные имена для файла, те которые объявлены как static или в безымянном namespace почему то доступны в другом файле. Почему это так или как это правильно тогда использовать?#ifndef HEADER_H #define HEADER_H #include <iostream> int i = 1; const int ci = 2; static int si = 3; static const int sci = 4; https://www.cyberforum.ru/ cpp-beginners/ thread1776018.html C++ Скрипт для запуска служб https://www.cyberforum.ru/ cpp-beginners/ thread1776007.html
Добрый день, Форумчане! За ранее извиняюсь, если пишу не в той теме, ибо не знал куда и пристроиться. Столкнулся с необходимостью написания скрипта, для проверки работы определённых служб, а в случае, если они отключены, то будет требоваться запуск. Не подскажете как именно можно реализовать такую задачу? P.s. хотелось бы ещё что бы опрос службы проходил через определённые промежутки времени. За...
Напечатать слова последовательности, которые отличны от последнего слова C++
Здравствуйте! Мне нужна помощь с заданием. Я не могу вывести на экран слово отличное от последнего, а так же при максимальной последовательности учитывается точка. А так же иногда не учитывается первое слово. Если вводить его без повторений, то оно не отображается. Тема: Строки Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними...
C++ Получить таблицу температур используя список Данную программу я написал работает верно, но как её можно реализовать с помощью списка, помогите пожалуйста #include <stdio.h> #include <conio.h> void main () { float c,f; float t1,t2,dt; printf("t1->"); scanf("%f", &t1); https://www.cyberforum.ru/ cpp-beginners/ thread1775870.html
C++ Найти максимальный элемент среди элементов кратных 2 Найти максимальный элемент среди элементов кратных 2. https://www.cyberforum.ru/ cpp-beginners/ thread1775832.html Сформировать предложение из слов заданной длины, в которых нет перевернутой заданной подстроки, но есть сама C++
Дан массив слов и подстрока. Сформировать предложение из слов заданной длины, в которых нет перевернутой заданной подстроки, но есть сама заданная подстрока. Перед включением в предложение удалить из слов первое вхождение заданной подстроки.
C++ Заменить в слове все маленькие латинские буквы от ‘a’ до ‘y’ на следующие по алфавиту Дано слово. Заменить в слове все маленькие латинские буквы от ‘a’ до ‘y’ на следующие по алфавиту (для слова “abc2=zx0” получаем “bcd2=zy0”). https://www.cyberforum.ru/ cpp-beginners/ thread1775830.html C++ Создать БД с использованием массива записей https://www.cyberforum.ru/ cpp-beginners/ thread1775779.html
Создать БД с использованием массива записей . В файле текстовом хранятся строки: номер наименование автор год выпуска кол-во на складе цена. Из файла заполнить БД,вывести на экран,алгоритмы: -поиска самой дорогой книги -сортировать погоду -поиск по автору -поиск по названию -определения наличия на складе
Программа для расчета комплексных чисел C++
Здравствуйте. В условии моей задачи присутсвуют комплекнсые числа.И некоторые действия с ними. A = a1 + a2i; B = b1 + b2i; A*A = C; n*A = C; B*A = C; модуль A = C; A - B = C; A + B = C; fi = arctg (a2i/a2). Так вот.Мне надо написать программу, которая будет все это считать.Точнее выше написанное это подпрограммы, и мне нужно написать основу. Потом мне преподаватель должен будет дать задание,...
C++ Полиморфизм не могу разобраться с полиморфизмом((( Вот как мне вычислить трапеции. У нее ведь три параметра, а не два как у прямоугольника???? class Figure { protected: double a, b; public: void set(double&x, double&y) https://www.cyberforum.ru/ cpp-beginners/ thread1775742.html
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
0

Идеи реализации класса Menu - C++ - Ответ 9344306

05.07.2016, 13:58. Показов 2289. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. В общем хочу разработать шаблонный класс Menu, чтобы постоянно не писать switch{}, но не знаю, как лучше сделать, суть в том, что есть несколько вариантов, а какой лучше и легче по реализации я понять не могу.
1. Сделать класс Menu_item, в котором будет содержаться строка(название пункта меню) и функция, которую надо вызвать при выборе этого пункта.
Примерно:
Кликните здесь для просмотра всего текста

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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
class Menu_item
{
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    Menu_item
            (
                std::string name_item,
                T func
            )
            :
            name(name_item),
            func(func)
    {}
    //-----------------------------------------------------------------------------------
    template<class... Args>
    void operator()(Args... arg)
    {
        func(arg...);
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    T func;
    std::string name;
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
void func(int a, int b)
{
    std::cout << a + b << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    Menu_item<void(*)(int,int)> m{"asd",func};
    m(1,4);
}

2. Сделать тоже самое, только с std::function<>
Кликните здесь для просмотра всего текста

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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <functional>
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
class Menu_item
{
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    Menu_item
            (
                std::string name_item,
                std::function<T> func
            )
            :
            name(name_item),
            func(func)
    {}
    //-----------------------------------------------------------------------------------
    template<class... Args>
    void operator()(Args... arg)
    {
        func(arg...);
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    std::function<T> func;
    std::string name;
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
void func(int a, int b)
{
    std::cout << a + b << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    Menu_item<void(int,int)> m{"asd",func};
    m(1,4);
}

3. Сделать всё в одном классе, без всяких итемов и прочего.

Это лишь мои варианты. Если у вас есть свои варианты или дополнение к моим, то пишите, так же буду рад любым советам по теме.

Ещё хотелось бы сделать так, чтобы при надобности совать меню в меню.

Вернуться к обсуждению:
Идеи реализации класса Menu C++
0
Лучшие ответы (1)
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2016, 13:58
Готовые ответы и решения:

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса....

нужны идеи в реализации кода
В общем если кто подскажет хоть примерно как это должно выглядеть буду очень благодарен. Или просто...

Как передать в метод класса Menu указатель на метод дочернего класса?
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: ...

идеи, идеи, идеи для начинающих
доброй ночи, уважаемые форумчане. перейдем сразу к делу =) в общем, собираюсь с 2 одногруппниками...

8
05.07.2016, 13:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2016, 13:58
Помогаю со студенческими работами здесь

Трудности в реализации класса
Не могу понять, почему не работают конструкторы класса... Прошу понятного объяснения=) вот код 1...

Детали реализации конструктора класса
Есть конструктор условного класса картинки и я не совсем понимаю нескольких вещей: #include...

Отделение интерфейса класса от реализации
Осваиваю раздел одной книги &quot;Отделение интерфейса класса от реализации&quot;. То что получилось можно и...

Ошибка реализации класса String
#include &lt;iostream&gt; using namespace std; class String { private: char *pStr; int _size;...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru