ВУЗ:
Составители:
Рубрика:
class complex /*-реализация понятия комплексного числа: */
{ double re, /*-действительная часть числа; */
im; /*-мнимая часть числа; */
public:
complex(double r) { re=r;im=0; } /*-конструк- */
complex(double r,double i) { re=r;im=i; } /* торы;*/
complex operator-() { return complex(-re,-im); }
complex operator~() { return complex(re,-im); }
friend complex operator+(complex a,complex b)
{ return complex(a.re+b.re,a.im+b.im); }
friend complex operator*(complex a,complex b)
{ return complex(a.re*b.re-a.im*b.im,
a.re*b.im+a.im*b.re); }
~complex() { } /*-пустой деструктор класса; */
double GetRe() { return re; }
double GetIm() { return im; }
};/*-конец определения класса комплексных чисел; */
#include <iostream.h> /*-стандартные классы ввода-вывода; */
void main(void) /*-примеры использования операций: */
{ complex a(1,1),b(2,2),c(3,3),d(4,4),e(5,5),d(6);
a=2*(a+c);
b=d+~e+10.5;
c=(-a+c)*e;
cout<<"\nc.re="<<c.GetRe();
cout<<" c.im="<<c.GetIm();
} /*-конец программы работы с комплексными числами; */
В этих примерах целые константы сначала автоматически пре-
образуются к типу double,а затем вызывается соответствующий
конструктор complex.Для константы с плавающей точкой 10.5 ав-
томатически вызывается конструктор complex(double r),который
создает временный объект класса complex,удаляемый из памяти
сразу же после выполнения операции над этим объектом.Таким
образом,конструкторы также выполняют преобразования типов
операндов.
Бинарная операция в составном типе может быть определена
или как функция-член,получающая один параметр(другим парамет-
27
class complex /*-реализация понятия комплексного числа: */ { double re, /*-действительная часть числа; */ im; /*-мнимая часть числа; */ public: complex(double r) { re=r;im=0; } /*-конструк- */ complex(double r,double i) { re=r;im=i; } /* торы;*/ complex operator-() { return complex(-re,-im); } complex operator~() { return complex(re,-im); } friend complex operator+(complex a,complex b) { return complex(a.re+b.re,a.im+b.im); } friend complex operator*(complex a,complex b) { return complex(a.re*b.re-a.im*b.im, a.re*b.im+a.im*b.re); } ~complex() { } /*-пустой деструктор класса; */ double GetRe() { return re; } double GetIm() { return im; } };/*-конец определения класса комплексных чисел; */ #include/*-стандартные классы ввода-вывода; */ void main(void) /*-примеры использования операций: */ { complex a(1,1),b(2,2),c(3,3),d(4,4),e(5,5),d(6); a=2*(a+c); b=d+~e+10.5; c=(-a+c)*e; cout<<"\nc.re="<
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »