Форум программистов, компьютерный форум 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() { ifstream in("123.txt"); //создаем поток ввода
C++ количества элементов линейной таблицы Составить программу для подчета суммы и количества элементов линейной таблицы А, состояще из 20 целых чисел,имеющих четные значения. http://www.cyberforum.ru/cpp-beginners/thread516833.html
Задать параметр для компоновщика в VS C++
Рассматриваю один из примеров Петзолда где общая память расшаривается через библиотеку для нескольких экземпляров приложения, вот только если у Петзолда она расшаривается то у меня нет (одновременно запущенные экземпляры приложения не видят данных других экземпляров). Единственное что я не сделал к этому примеру это: Компоновщику необходимо сообщить об области памяти shared. В командной строке...
C++ Неправильное выделение байтов
void *_upointer; int type:2; В классе присутствуют 2 переменные. Насколько я знаю, указатель занимает 4 байта, а int в данном случае должен занимать 1. итого: 5. когда использовал sizeof, вывело 8. Что не так?
C++ Правильно ли считываю матрицу? http://www.cyberforum.ru/cpp-beginners/thread516795.html
Ребят, правильно ли я считываю матрицу из файла? И еще: чтобы узнать размер матрицы, мне обязательно нужно открыть файл и, посмотрев ее кол-во строк и столбцов, сделать соответствующие изменения в программе (в смысле изменить размерность)? Ведь больше я никак не могу узнать, массив какой размерности мне нужен под ее хранение? #include<iostream> #include<fstream> //потоки #include...
C++ Указатель на уничтоженный массив int *point; void func() { int mass; for(int i=0; i<16; ++i) mass = 16-i; point = mass; } int main() подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
12.03.2012, 17:05     Базовый тип чисел
Цитата Сообщение от gooseim Посмотреть сообщение
Хорошо, напишите тоже самое с помощью switch и посмотрим чей код будет короче и красивее. То, что вы предлагаете это детский сад.
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
#include <stdexcept>
#include <iostream>
 
using namespace std;
 
class NumericBase
{
private:
   union
   {
      int integer;
      double real;
   } value;
 
   enum
   {
      INTEGER,
      REAL
   } type;
 
public:
   NumericBase(int n) : type(INTEGER)
   {
      value.integer = n;
   }
   
   NumericBase(double n) : type(REAL)
   {
      value.real = n;
   }
   
   NumericBase(const NumericBase &n) : type(n.type)
   {
      value = value;
   }
   
   NumericBase &operator=(const NumericBase &n)
   {
      if (this != &n)
      {
         type = n.type;          
         value = n.value;
      }
            
      return *this;
   }
   
   NumericBase &operator=(const int n)
   {
      type = INTEGER;
      value.integer = n;
      
      return *this;
   }
   
   NumericBase &operator=(const double n)
   {
      type = REAL;
      value.real = n;
      
      return *this;
   }
   
   NumericBase &operator+=(const NumericBase &n)
   {
      if (type != n.type)
         throw std::logic_error("Different types");
      
      switch (type)
      {
      case INTEGER:
         value.integer += n.value.integer;
         break;
      case REAL:
         value.real += n.value.real;
         break;
      }
      
      return *this;
   }
   
   friend ostream &operator<<(ostream &out, const NumericBase &n)
   {
      out << (n.type == INTEGER ? n.value.integer : n.value.real);
      return out;
   }
};
 
int main()
{
   NumericBase a = 10, b = 15;
   a += b;
   
   cout << a << " " << b << endl;
   
   NumericBase c = 1.5, d = 3.5;
   c += d;
   
   cout << c << " " << d << endl;
}
 
Текущее время: 08:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru