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

Можно ли "подменить" тип данных в процессе выполнения? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему L"-0" != L"-0" ? http://www.cyberforum.ru/cpp-beginners/thread1504416.html
Здравствуйте. Передаю приложению параметры запуска и сравниваю их в коде со значениями для идентификации опции. Вопрос, почему сравнение даёт ложный результат? Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
C++ Сформировать массив по заданному правилу Напишите программу, которая создает двухмерный массив и заполняет его по следующему принципу: пользователь вводит число (например, 3) первый элемент массива принимает значение этого числа, последующий элемент массива принимает значение этого числа умноженного на 2 (т.е. 6 для нашего примера), третий элемент массива предыдущий элемент умноженный на 2 (т.е. 6*2=12 для нашего примера). Созданный... http://www.cyberforum.ru/cpp-beginners/thread1504393.html
Модель электронного устройства с использованием абстрактных классов C++
Здравствуйте, уважаемые форумчане! Продолжаю готовиться к экзамену по Real Time. Задание выложить не могу, но вкратце такое: Step 1 - есть Ariphmetical Logical Unit-ALU. Оно имитируется двумя классами - абстрактным AbstractALU и наследующим его обычным классом ALU. Далее есть имитация Full Adder'a -FA и FS( не помню как расшифровывается это название). Классы FA и FS наследуют класс ALU. ...
Выполнение программы при выключении компьютера C++
День добрый! Возникла такая задачка, пишу программу и необходимо чтобы она запускалась при включении компьютера, сделала что нужно, затем ущла в спящий режим и когда юзер будет выключать компьютер программа должна проснуться, сделать свое дело и закрыться. Не подскажите как это лучше реализовать?
C++ Слишком быстрый инпут http://www.cyberforum.ru/cpp-beginners/thread1504319.html
И так, я пишу программу для передачи потока через медленный радиопередатчик(заявленный максимум 10кб/с, но на деле по-моему меньше). Пишу под линукс для Raspberry Pi. Основана на этом - https://github.com/ninjablocks/433Utils . Выглядит она так: #include "RCSwitch.h" #include <stdlib.h> #include <stdio.h> #include <iostream> #include <time.h> #include <termios.h>
C++ Работа со списками Разработать программу, которая создает список, элементами которого являются целые числа. Для заданных чисел a,b, выводит в порядке размещения все числа списке меньше чем а, потом все числа из диапазона и, наконец, все числа большие выше b. НО список просматривается только 1 раз. подробнее

Показать сообщение отдельно
rotciv
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 55
24.07.2015, 16:40     Можно ли "подменить" тип данных в процессе выполнения?
Добрый день!

Есть у меня такой кусок кода, описывающего класс.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef vector<double> complex;
typedef map<string, double> datablock;
typedef map<string, complex> acdatablock;
 
class PsfFileReader {
public:
  PsfFileReader(string S1);
  datablock getDataBlock();
...
  ifstream File;
 
private:
  datablock readDataBlock();
  string FileName;
...
  datablock DataBlock;
  bool DbEmpty;
  datablock prevDataBlock;
  bool PrevDbEmpty;
  bool ReadFile;
}; // PsfFileReader
Определено 2 типа: datablock и acdatablock.
Какой из 2-х типов будет использоваться, становится известно только в момент работы конструктора.
Разница между datablock и acdatablock - в том, что первый содержит действительные числа (double), а второй - комплексные (как известно, для комплексного числа нужна пара double). Я решил класть эту пару в вектор.

Вопрос - надо ли класть рядом acdatablock и писать второй комплект функций-членов, с ним работающих, или можно делать подмену по ходу дела, с помощью шаблонов, например?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru