Тип данных 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 задает скалярный тип как вещественной, так и мнимой части комплексного чи