Категория
Информатика
Тип
реферат
Страницы
6 стр.
Дата
20.11.2009
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20658.zip — 7.55 kb
  • opredeljaemoe-preobrazovanie-tipa_20658_1.rtf — 37.9 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

Определяемое Преобразование Типа Alena Alena
Определяемое Преобразование Типа
Приведенная во введении реализация комплексных чисел слишком ограничена, чтобы она могла устроить
кого-либо, поэтому ее нужно расширить. Это будет в основном повторением описанных выше методов.
Например:
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.
Конструкторы
Альтернативу использованию нескольких функций (перегруженных) составляет описание конструктора, который по заданному double
создает complex.
Например :
class complex
// ...
complex(double r) re=r; im=0;
;
Конструктор, требующий только один параметр, необязательно вызывать явно:
complex z1 = complex(23);
complex



Ваше мнение



CAPTCHA