Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 4
1

Написать универсальный скалярный тип с использованием класса

29.02.2016, 11:56. Показов 360. Ответов 4
Метки нет (Все метки)

Дали такое вот задание, как писать не понятно. Смысл задачи в том, что имеется некоторая переменная, например инт и он хранит значение 5. Затем нужно сделать так, чтобы инт принял 2.2 и соответственно изменил свой тип. Как-то так обрисовали задачу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.02.2016, 11:56
Ответы с готовыми решениями:

Универсальный указатель или универсальный скалярный тип
Здравствуйте! Помогите, пожалуйста написать программу: требуется написать универсальный скалярный...

Привести один тип к другому. Тип универсальный, параметризируется другими типами
Доброго времени суток! Прошу помощи, что-то туплю. Под вечер или вообще :) Пытаюсь привести...

Как написать этот код с использованием класса в отдельном файле?
private void button3_Click(object sender, EventArgs e) { if...

Реализация метода CopyToDataTable<T>, если универсальный тип T не является DataRow
Нашел я статью на сайте Microsoft с чрезвычайно полезной вещью. ...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
4
6000 / 2123 / 740
Регистрация: 10.12.2010
Сообщений: 5,959
Записей в блоге: 3
29.02.2016, 12:04 2
Я бы хранил строку. Ходят слухи, что есть boost::variant. Если это то, о чем я думаю исходя из названия, то посмотрите, может это ваш случай.
0
Эксперт С++
1919 / 1261 / 360
Регистрация: 16.05.2013
Сообщений: 3,293
Записей в блоге: 6
29.02.2016, 12:51 3
Цитата Сообщение от fillka Посмотреть сообщение
Смысл задачи в том, что имеется некоторая переменная, например инт и он хранит значение 5. Затем нужно сделать так, чтобы инт принял 2.2 и соответственно изменил свой тип.
Цитата Сообщение от HighPredator Посмотреть сообщение
Ходят слухи, что есть boost::variant.
Если мне память не изменяет эта штука называется boost::any.
boost::variant немного другое - обобщение объединений на не POD классы.
1
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 4
29.02.2016, 12:53  [ТС] 4
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
 
#include <iostream>
#include <string>
#include <typeinfo>
using namespace std;
 
class UstE
{
    void* a;
    string type;
 
public:
 
    UstE()
    {
        a=NULL;
    }
 
    template<typename T>
    UstE(T arg)
    {
        a = new T(arg);
        type=typeid(arg).name();
    }
 
    template<typename T>
    operator T() const
    {
        return *((T*)a);
    }
 
    template<typename T>
    void operator= (T arg)
    {
        delete a;
        a = new T(arg);
        type=typeid(arg).name();
    }
 
    string get_type()
    {
        return type;
    }
 
    void print_type()
    {
        cout<<type<<endl;
    }
 
    ~UstE()
    {
        delete a;
    }
 
 
};
 
 
//для проверки вывода имени типа
class matc
{
    int a;
};
 
int main()
{
    matc m;
 
    UstE a=5;
    int b=a;
    a='s';
    char c=a;
    a=m;
    cout<<b<<endl<<c<<endl;
    a.print_type();
    return 0;
}
Нужно его как-то переделать. И как не ясно. Не понятно собственно даже что надо сделать. Нам сказали что-то про буст. Идея примерно в том, чтобы переменная принимала тот же тип что и значение, которое мы туда передаем. Потом надо уметь обращаться к типу переменной, типо узнавать какого она сейчас типа. Как-то так. Насколько я сам понял))
0
HighPredator
29.02.2016, 13:28     Написать универсальный скалярный тип с использованием класса
  #5

Не по теме:

Цитата Сообщение от Ilot Посмотреть сообщение
Если мне память не изменяет эта штука называется boost::any.
Может быть. Я не сильно с бустом знаком.

0
29.02.2016, 13:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2016, 13:28
Привет! Вот еще темы с ответами:

Как сделать, чтобы метод возвращал универсальный тип объекта
Помогите!!! Может вообще все по другому сделать надо, но идея такая: public ObjectSet&lt;??????&gt;...

Универсальный метод добавления экземпляра класса
Добрый день! Есть несколько классов, основными полями в которых являются Id и Description. Могут...

Создать универсальный вектор для разных типов класса
Нужно создать абстрактный класс, в котором будет метод Add(), типа вектор, но этот метод должен...

Класс: Написать класс с использованием объекта класса Integer с обработкой исключения.
Написать класс с использованием объекта класса Integer с обработкой исключения (блок try-catch)

Как из перегруженных операторов базавого класса возвратить атоматизированный тип аргументов, тип которых является наследником
Вот имеет трех уровневое наследование. Как за один раз определить операторы для всех потомков? ...

Статическое поле класса, имеющее тип того же класса
Всем доброго времени суток. Как известно, поля класса могут быть ссылками, либо указателями на тот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.