Случайный афоризм
Стихи никогда не доказывали ничего другого, кроме большего или меньшего таланта их сочинителя. Федор Иванович Тютчев
 
новости
поиск по автору
поиск по тематике
поиск по ключевому слову
проба пера
энциклопедия авторов
словарь терминов
программы
начинающим авторам
ваша помощь
о проекте
Книжный магазин
Главная витрина
Книги компьютерные
Книги по психологии
Книги серии "Для чайников"
Книги по лингвистике
ЧАВо
Разные Статьи
Статьи по литературе

Форма пользователя
Логин:
Пароль:
регистрация
 детектив



 драмма



 животные



 история



 компьютерная документация



 медицина



 научно-популярная



 очередная история



 очерк



 повесть



 политика



 поэзия и лирика



 приключения



 психология



 религия



 студенту



 технические руководства



 фантастика



 философия и мистика



 художественная литература



 энциклопедии, словари



 эротика, любовные романы



в избранноеконтакты

Параметры текста
Шрифт:
Размер шрифта: Высота строки:
Цвет шрифта:
Цвет фона:

  class complex {
      double re, im;
  public:
      complex(double r, double i) { re=r; im=i; }
      friend complex operator+(complex, complex);
      friend complex operator*(complex, complex);
  };

определяет простую реализацию понятия комплексного числа, в которой
число  представляется   парой  чисел  с  плавающей  точкой  двойной
точности, работа с которыми осуществляется посредством операций + и
* (и  только). Программист  задает смысл  операций +  и * с помощью
определения  функций   с  именами   operator+  и  operator*.  Если,
например, даны b и c типа complex, то b+c означает (по определению)
operator+(b,c). Теперь  есть  возможность  приблизить  общепринятую
интерпретацию комплексных выражений. Например:
                             - стр 177 -

  void f()
  {
      complex a = complex(1, 3.1);
      complex b = complex(1.2, 2);
      complex c = b;

      a = b+c;
      b = b+c*a;
      c = a*b+complex(1,2);
  }

Выполняются обычные  правила приоритетов,  поэтому второй  оператор
означает b=b+(c*a), а не b=(b+c)*a.

     6.2 Функции Операции

  Можно  описывать   функции,   определяющие   значения   следующих
операций:

  +   -   *   /   %   ^   &   |   ~   !
  =   <   >   +=  -=  *=  /=  %=  ^=  &=
  |=  <<  >>  >>= <<= ==  !=  <=  >=  &&
  ||  ++  --  []  ()  new delete

  Последние четыре  -  это  индексирование  (#6.7),  вызов  функции
(#6.8), выделение  свободной памяти и освобождение свободной памяти
(#3.2.6). Изменить  приоритеты перецисленных  операций  невозможно,
как невозможно  изменить и  синтаксис выражений.  Нельзя, например,
определить унарную операцию % или бинарную !. Невозможно определить
новые  лексические  символы  операций,  но  в  тех  случаях,  когда
множество  операций  недостаточно,  вы  можете  исользовать  запись
вызова  функции.   Используйте  например,   не  **,  а  pow().  Эти
ограничения могут показаться драконовскими, но более гибкие правила
могут очень  легко привести к неоднозначностям. Например, на первый
взгляд определение  операции **,  охначающей возведение  в степень,
может показаться очевидной и простой задачей, но подумайте еще раз.
Должна ли  ** связываться  влево (как  в Фортране) или впрво (как в
Алголе)? Выражение  a**p должно  интерпретироваться как  a*(*p) или
как (a)**(p)?
  Имя функции  операции есть  ключевое  слово  operator  (то  есть,
операция), за  которым следует сама операция, например, operator<<.
Функция операция  описывается и  может вызываться так же, как любая

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 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : 168 : 169 : 170 : 171 : 172 : 173 : 174 : 175 : 176 : 177 : 178 : 179 : 180 : 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 : 205 : 206 : 207 : 208 : 209 : 210 : 211 : 212 : 213 : 214 : 215 : 216 : 217 : 218 : 219 : 220 : 221 : 222 : 223 : 224 : 225 : 226 : 227 : 228 : 229 : 230 : 231 : 232 : 233 : 234 : 235 : 236 : 237 : 238 : 239 : 240 : 241 : 242 : 243 : 244 : 245 : 246 : 247 : 248 : 249 :
главная наверх

(c) 2008 Большая Одесская Библиотека.