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

Базовый тип чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение из файла http://www.cyberforum.ru/cpp-beginners/thread516838.html
Проясните, пожалуйста, один вопрос: есть файл такого содержания - 12 23 32 43 45 95 Простейшая программа: #include<iostream> #include<fstream> //потоки using namespace std; int main()...
C++ количества элементов линейной таблицы Составить программу для подчета суммы и количества элементов линейной таблицы А, состояще из 20 целых чисел,имеющих четные значения. http://www.cyberforum.ru/cpp-beginners/thread516833.html
Задать параметр для компоновщика в VS C++
Рассматриваю один из примеров Петзолда где общая память расшаривается через библиотеку для нескольких экземпляров приложения, вот только если у Петзолда она расшаривается то у меня нет (одновременно...
C++ Неправильное выделение байтов
void *_upointer; int type:2; В классе присутствуют 2 переменные. Насколько я знаю, указатель занимает 4 байта, а int в данном случае должен занимать 1. итого: 5. когда использовал sizeof,...
C++ Правильно ли считываю матрицу? http://www.cyberforum.ru/cpp-beginners/thread516795.html
Ребят, правильно ли я считываю матрицу из файла? И еще: чтобы узнать размер матрицы, мне обязательно нужно открыть файл и, посмотрев ее кол-во строк и столбцов, сделать соответствующие изменения в...
C++ Указатель на уничтоженный массив int *point; void func() { int mass; for(int i=0; i<16; ++i) mass = 16-i; point = mass; } int main() подробнее

Показать сообщение отдельно
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 15:22
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
class utype 
{
    public:
        utype()
        {
            _type = 0;
        }
        utype(int i)
        {
            _upointer = new int;
            *(int*)_upointer = i;
            _type = 1;
        }
        utype(double f)
        {
            _upointer = new double;
            *(double*)_upointer = f;
            _type = 2;
        }
        utype(char ch)
        {
            _upointer = new char;
            *(char*)_upointer = ch;
            _type = 3;
        }
        utype(string str)
        {
            _upointer = new string;
            *(string*)_upointer = str;
            _type = 4;
        }
        // ---
        void operator=(int i)
        {
            if(_type > 0) clear();
            _upointer = new int;
            *(int*)_upointer = i;
            _type = 1;
        }
        void operator=(double f)
        {
            if(_type > 0) clear();
            _upointer = new double;
            *(double*)_upointer = f;
            _type = 2;
        }
        void operator=(char ch)
        {
            if(_type > 0) clear();
            _upointer = new char;
            *(char*)_upointer = ch;
            _type = 3;
        }
        void operator=(string str)
        {
            if(_type > 0) clear();
            _upointer = new string;
            *(string*)_upointer = str;
            _type = 4;
        }
        // --- 
        void print()
        {
            switch(_type)
            {
                case 1:
                    cout << *(int*)_upointer;
                break;
                case 2:
                    cout << *(double*)_upointer;
                break;
                case 3:
                    cout << *(char*)_upointer;
                break;
                case 4:
                    cout << *(string*)_upointer;
                break;
            }
        }
        void clear()
        {
            switch(_type)
            {
                case 1:
                    delete (int*)_upointer;
                break;
                case 2:
                    delete (double*)_upointer;
                break;
                case 3:
                    delete (char*)_upointer;
                break;
                case 4:
                    delete (string*)_upointer;
                break;
            }
            _type = 0;
        }
    private:
        void *_upointer;
        unsigned __int8 _type:3;
};
Добавлено через 24 секунды
Разберешься?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru