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

Хранение разных типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Битовые операции, найти ошибку в коде http://www.cyberforum.ru/cpp-beginners/thread1118038.html
Написал немного коду с битовыми операциями, чтобы заменять биты, но почему то работает не так как хотелось. Комментарии все в коде. В HEX редакторе получаются в основном одни FF, т.е. байты...
C++ Необходимо создать связной список с записью в файл и восстановлением из файла Народ выручайте. В задании необходимо создать связной список с записью в файл и восстановлением из файла. Со списком я более-менее разобрался, но я не пойму по КАКОМУ принципу происходит... http://www.cyberforum.ru/cpp-beginners/thread1118034.html
C++ Шаблон принимает аргументы с различными типами
template <class T> T function(T a,T b) { if(a>b)return a; else return b; } Если я делаю вызов с различными типами function(3.1124,20); то компилятор пишет про неоднозначность...
C++ Добавление индексатора, позволяющего обратиться к элементу строки.
Помогите добавить в мой код.Индексатор, позволяющий по индексу обращаться к соответствующему символу строки. #include "stdafx.h" #include "iostream" #include <string> #include <algorithm>...
C++ Бинарный поиск рекурсией http://www.cyberforum.ru/cpp-beginners/thread1117984.html
Не могу разобраться, какое условие дописать в функцию для возврата -1, если искомый элемент не найден? int BinSearch(int mas,int Start, int End,int Val) { int Mid=(Start+End)/2; if(Val==mas)...
C++ Интерфейс для программы В общем.Думаю,что набрался каких-никаких знаний по языку,хотелось бы научиться придавать приличный внешний вид программам:кнопки там всякие и прочее.Знаю,что в VS можно создать что-то простое с... подробнее

Показать сообщение отдельно
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.03.2014, 14:49
Тогда можно поступить так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class AbstractParameter
{
public:
    virtual ~AbstractParameter(void) {}
protected:
    AbstractParameter(void) {}
};
 
struct StringParameter: public AbstractParameter
{
    string value;
};
 
struct IntParameter: public AbstractParameter
{
    int value;
};
Структуру команды я уже указывал:
C++
1
2
3
4
5
struct Command
{
    int type;
    SomeContainer<AbstractParameter*> params;
};
Вот объекты типа Command вам и стоит хранить в массиве, а параметры команды - в контейнере params.

Однако, когда вы будете обращаться к конкретным параметрам, вам всё равно придётся как-то выяснять их тип. Толи с помощью dynamic_cast, толи ещё каким-нибудь способом (например, паттерн visitor есть на этот случай).

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