6.3 Определяемое Пользователем Преобразование Типа

6.3 Определяемое Пользователем Преобразование Типа

Приведенная во введении реализация комплексных чисел слишком ограничена, чтобы она могла устроить кого-либо, потому ее нужно расширить. Это будет в основном повторением описанных выше методов. Например:

class complex (* double re, im; public: complex(double r, double i) (* re=r; im=i; *)

friend complex operator+(complex, complex); friend complex operator+(complex, double); friend complex operator+(double, complex);

friend complex operator-(complex, complex); friend complex operator-(complex, double); friend complex operator-(double, complex); complex operator-() // унарный -

friend complex operator*(complex, complex); friend complex operator*(complex, double); friend complex operator*(double, complex);

// ... *);

Теперь, имея описание complex, мы можем написать:

void f() (* complex a(1,1), b(2,2), c(3,3), d(4,4), e(5,5); a = -b-c; b = c*2.0*c; c = (d+e)*a; *)

Но писать функцию для каждого сочетания complex и double, как это делалось выше для operator+(), невыносимо нудно. Кроме того, близкие к реальности средства комплексной арифметики должны предоставлять по меньшей мере дюжину таких функций. Посмотрите, например, на тип complex, описанный в «complex.h».

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

2.6 Триумф интерфейса над пользователем?

Из книги Прикладные свободные программы и системы в школе автора Отставнов Максим

2.6 Триумф интерфейса над пользователем? Косметических улучшений за тридцать лет существования парадигмы WIMP была придумана масса, а вот более или менее серьезных, при внимательном анализе, обнаруживается только два: интеграция звука (и превращение графической


2.6 Триумф интерфейса над пользователем?

Из книги Свободные программы и системы в школе автора Отставнов Максим

2.6 Триумф интерфейса над пользователем? Косметических улучшений за тридцать лет существования парадигмы WIMP была придумана масса, а вот более или менее серьезных, при внимательном анализе, обнаруживается только два: интеграция звука (и превращение графической


2.3.2 Неявное Преобразование Типа

Из книги C++ автора Хилл Мюррей

2.3.2 Неявное Преобразование Типа Основные типы можно свободно сочетать в присваиваниях и выражениях. Везде, где это возможно, значения преобразуются так, чтобы информация не терялась. Точные правила можно найти в #с.6.6.Существуют случаи, в которых информация может теряться


3.2.5 Преобразование типа

Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России

3.2.5 Преобразование типа Бывает необходимо явно преобразовать значение одного тпа в значение другого. Явное преобразование типа дает значние одного типа для данного значения другого типа. Например:float r = float(1);перед присваиванием преобразует целое значение 1 к знчению с


8.2.2 Вывод Определяемых Пользователем Типов

Из книги Справочное руководство по C++ автора Страустрап Бьярн

8.2.2 Вывод Определяемых Пользователем Типов Рассмотрим определяемый пользователем тип:class complex (* double re, im; public: complex(double r = 0, double i = 0) (* re=r; im=i; *)friend double real(complex amp; a) (* returna.re; *) friend double real(complex amp; a) (* returna.re; *)friend complex operator+(complex, complex); friend complex operator-(complex, complex); friend complex operator*(complex, complex); friend


7.2.3 Явное Преобразование Типа

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

7.2.3 Явное Преобразование Типа Простое_имя_типа (#8.2), возможно, заключенное в скобки, за которым идет заключенное в скобки выражение (или спсок_выражений, если тип является классом с соответствующим образом описанным конструктором #8.5.5) влечет преобразование значения


R.5.4 Явное преобразование типа

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

R.5.4 Явное преобразование типа Явное преобразование типа можно задать с помощью функциональной записи (§R.5.2.3) или с помощью операции приведения.выражение-приведения: унарное-выражение (имя-типа) выражение-приведенияЗадание с помощью операции приведения используется


Получение пользователем билета TGT на билеты

Из книги C++ для начинающих автора Липпман Стенли

Получение пользователем билета TGT на билеты В начале сеанса регистрации пользователь обращается к сервису аутентификации (Authentication Service - AS) Kerberos за получением билета TGT для ЦРК. Обмен сообщениями с сервисом AS не требует от пользователя А подтверждения своей


Аутентификация сервера пользователем

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Аутентификация сервера пользователем Для того чтобы пользователь А, в свою очередь, мог аутентифицировать сервер, сервер В увеличивает на единицу значение времени из запроса пользователя А и вновь шифрует его при помощи ключа KAB. Этот шифртекст и является ответом


Функции, определенные пользователем

Из книги автора

Функции, определенные пользователем Для сохранения своего малого объема Firebird поставляется с весьма скромным арсеналом встроенных (родных) функций трансформации данных. Пользователи могут писать свои собственные функции на известном им языке, таком как C/C++, Pascal или Object


Объекты, определенные пользователем

Из книги автора

Объекты, определенные пользователем При восстановлении копии на сервер, отличный от того, с которого были сделаны копии, вы должны обеспечить существование на новом сервере наборов символов и порядков сортировки, на которые ссылается копия. Копия не может быть


Взаимодействие с пользователем

Из книги автора

Взаимодействие с пользователем Второй пример показывает возможности взаимодействия пользователя с программой. Приложение представляет собой кнопку, которую пользователь может нажать и тогда приложение закончит свою работу. Исходный код этой программы очень