Тип данных complex стандартной библиотеки языка C++

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

onst complex)&);

// Другие версии копирующих конструкторов отсутствуют

};

}

& complex: :operator= (const complex& cmplx)

? Присваивает значение комплексного числа cmplx.

? Возвращает *this.

? Функция определяется в обеих формах: шаблонной и обычной. Тем самым обеспечивается автоматическое преобразование к типу элементов (это относится и к специализированным версиям из стандартной библиотеки С++).

complex& complex: :operator+= (const complex& cmplx)& complex::operator-- (const complex& cmplx)& complex::operator*= (const complex& cmplx)& complex: :operator/= (const complex& cmplx)

? Сложение, вычитание, умножение и деление cmplx и *this с сохранением результата в *this.

? Операторы возвращают *this.

? Операции определяются в обеих формах: как шаблонные и обычные функции. Тем самым обеспечивается автоматическое преобразование к типу элементов (это относится и к специализированным версиям из стандартной библиотеки С++). Обратите внимание: операторы присваивания - единственные функции, позволяющие изменить значение существующего объекта complex.

Обращение к данным

Т complex:.real () const

Т real (const complex& cmplx)complex::imag () constimag (const complex& cmplx)

?Функции возвращают значение вещественной или мнимой части соответственно.

? Возвращаемое значение не является ссылкой. Это означает, что функции real() и imag() не могут использоваться для изменения вещественной или мнимой части числа. Чтобы изменить только вещественную или мнимую часть, необходимо присвоить объекту complex новое комплексное число.

Т abs (const complex& cmplx)

? Возвращает модуль (абсолютное значение) комплексного числа cmplx.

? По формуле вычисляется модуль комплексного числа. Т norm (const complex& cmplx)

? Возвращает квадрат модуля комплексного числа cmplx.

? Квадрат модуля комплексного числа вычисляется по формуле стрlx.real()2 + + cmplx.imag()2.

Т arg (const complex& cmplx)

? Возвращает фазовый угол представления cmplx в полярных координатах (?).

? Эквивалент:

atan2(cmplx.imag() .cmplx.real()).

Операции ввода-вывода& operator (ostream& strm, const complex& cmplx)

? Выводит значение cmplx в ноток данных strm в формате:

(вещественная_часть , мнимая_часть)

? Возвращает strm.

istream& operator (istream& strm. complex& cmplx)

? Читает новое значение из потока данных strm в переменную cmplx.

? Допустимые форматы входных данных:

(вещественная_частъ , мнимая_часть)

(вещественная_часть)

вещественная __часть

? Возвращает strm.

Операторыoperator (const complex& cmplx)

Возвращает cmplx. complex operator (const complex& cmplx)

? Унарное изменение знака.

? Возвращает cmplx с обратными знаками вещественной и мнимой частей.

complex бинарна я_операция (const complex& cmplx1. const complex& cmplx2) бинарная_операция (const complex& cmplx1. const T& value) бинарная_операция (const T& value, const complex& cmplx2)

? Все формы возвращают комплексный результат выполнения заданной бинарной операции.

? Параметр бинарная_операция - один из следующих операторов:

operator-operator* operator/

? Если при вызове оператора передается скалярное значение типа элемента, оно интерпретируется как вещественная часть, а мнимая часть инициализируется значением по умолчанию для своего типа (0 для базовых типов данных).

bool сравнение (const complex& cmplx1, const complex& cmplx2)сравнение (const complex& cmplx1. const T& value) сравнение (const T& value, const complex& cmplx1)

? Возвращает результат сравнения двух комплексных чисел или комплексного

числа со скалярным значением.

? Параметр сравнение - один из следующих операторов:

operator == operator !=

? Если при вызове оператора передается скалярное значение типа элемента, оно интерпретируется как вещественная часть, а мнимая часть инициализируется значением по умолчанию для своего типа (0 для базовых типов данных).

? Обратите внимание: операторы = не поддерживаются.

Транiендентные функцииpow (const complex& base, int exp) pow (const complex& base, const T& exp) pow (const complex& base, const complex& exp) pow (const T& base, const complex& exp)

? Все формы возвращают результат комплексного возведения base в степень ехр, вычисляемый по формуле:

exp(exp*log(base))

? Разрывы направлены вдоль отрицательной вещественной полуоси.

? Значение, возвращаемое для pow(0,0), определяется реализацией.

complex exp (const complex& cmplx)

Возвращает результат комплексного возведения числа е в степень cmplx.

complex sqrt (const complex& cmplx)

? Возвращает комплексный квадратный корень из cmplx, находящийся в правой полуплоскости.

? Если аргумент является отрицательным вещественным числом, то возвращаемое значение находится на положительной мнимой полуоси.

? Разрывы направлены вдоль отрицательной вещественной полуоси. complex log (const complex& cmplx)

? Возвращает комплексный натуральный логарифм cmplx.

? Если cmplx является отрицательным вещественным числом, то imag(log(cmplx))=PI.

? Разрывы направлены вдоль отрицательной вещественной полуоси, complex log10 (const complex& cmplx)

? Возвращает комплексный десятичный логарифм cmplx.

? Эквивалент:

log(cmplx)/log(10)

? Разрывы направлены вдоль отрицательной вещественной полуоси.

complex sin (const complex& cmplx)cos (const complex& cmplx) tan (const complex& cmplx) sinh (const complex& cmplx) cosh (const complex& cmplx) tanh (const complex& cmplx)

? Функции возвращают результаты соответствующих комплексных тригонометрических операций с cmplx.

Класс complex объявляется в заголовочном файле :

#include

Определение класса complex в файле выглядит так:

Листинг 2-Определение класса complex

Namespace std

{

template

class complex;

}

Параметр шаблона T задает скалярный тип как вещественной, так и мнимой части комплексного чи