0 / 0 / 0
Регистрация: 06.11.2014
Сообщений: 35
1

Как вывести значение переменной, не зная ее типа?

10.03.2016, 14:05. Показов 806. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо написать универсальный скалярный тип, причем так, чтобы нам не нужно было знать тип переменной при ее выводе. Вот, что я написал, как можно изменить это так, чтобы typeid не использовался?


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
#include <iostream>
#include <string>
#include <typeinfo>
using namespace std;
 
 
 
 
class UST
{
    void* num;
    string type;
public:
 
    UST()
    {
        num = NULL;
    }
    template <typename T>
    UST(T a)
    {
        num = new T(a);
        type = typeid(a).name();
    }
    template <typename T>
    operator T() const
    {
        return *((T*)num);
    }
 
    void gettype()
    {
        cout << type<< endl;
    }
    template <typename T>
    void operator = (T a)
    {
        delete [] num;
        num = new T(a);
        type = typeid(a).name();
    }
    template <typename T>
    T foo()
    {
        T a;
        a = *(reinterpret_cast<T*>(num));
        return a;
    }
};
 
 
 
 
int main()
{
    UST A(5.5);
    cout<<"type:";
    A.gettype();
    cout<<"value=";
    double b;
    b = A.foo<double>();
    cout << b;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2016, 14:05
Ответы с готовыми решениями:

Как присвоить значение одного из элементов массива типа char переменной типа int?
С++ начал буквально только что так что буду благодарен за терпение и понимание ) Сразу оговорюсь...

Как присвоить переменной типа string значение из файла
Название файла неизвестно, задается пользователем в командой строке при вызове программы. Т.е....

Как присвоить переменной типа String значение argv[0]?
Как присвоить переменной типа String значение argv? Заранее спасибо =)

Возможно ли определить имя переменной, зная ее значение и адрес?
Возник вопрос: возможно ли как-то определить имя переменной, зная, скажем, ее значение и адрес....

3
5 / 5 / 4
Регистрация: 16.10.2014
Сообщений: 19
10.03.2016, 14:47 2
AUTO
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
10.03.2016, 17:15 3
C++
1
2
3
num = new T(a);
//...
delete [] num;//delete, а не delete[]
0
BrainOverflow
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
10.03.2016, 17:16 4
Мой лучший друг гугл сказал, что большинство использует typeid.
0
10.03.2016, 17:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2016, 17:16
Помогаю со студенческими работами здесь

FindFirstFileW. Как подставить значение переменной типа string в функцию?
Здравствуйте, форумчане! Будьте добры и помогите понять один нюанс. Например есть у меня такие...

Как в один Label Вывести текст и значение переменной типа float?
Пример Картошка: 21 кг Как это вывести в один Label?

Как получить менеджер объекта, зная значение соответствующего типа?
всем привет Задача - как получить менеджер объекта зная значение соответствующего типа? вот к...

Как узнать имя переменной зная значение которое оно имеет
Есть массив переменных string они задаются случайным образом определенными известными значениями....


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

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

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