В этом примере вы научитесь вычитать комплексные числа, используя перегрузку оператора -.
Чтобы понять этот пример, вы должны знать следующие темы программирования на C ++:
- Классы и объекты C ++
- Конструкторы C ++
- Перегрузка оператора C ++
Поскольку - является бинарным оператором (оператором, который работает с двумя операндами), один из операндов должен быть передан в качестве аргумента операторной функции, а остальной процесс аналогичен перегрузке унарных операторов.
Пример: перегрузка двоичного оператора для вычитания комплексного числа
#include using namespace std; class Complex ( private: float real; float imag; public: Complex(): real(0), imag(0)( ) void input() ( cout <> real; cin>> imag; ) // Operator overloading Complex operator - (Complex c2) ( Complex temp; temp.real = real - c2.real; temp.imag = imag - c2.imag; return temp; ) void output() ( if(imag < 0) cout << "Output Complex number: "<< real << imag << "i"; else cout << "Output Complex number: " << real << "+" << imag << "i"; ) ); int main() ( Complex c1, c2, result; cout<<"Enter first complex number:"; c1.input(); cout<<"Enter second complex number:"; c2.input(); // In case of operator overloading of binary operators in C++ programming, // the object on right hand side of operator is always assumed as argument by compiler. result = c1 - c2; result.output(); return 0; )
В этой программе создаются три объекта типа Complex, и пользователя просят ввести действительную и мнимую части для двух комплексных чисел, которые хранятся в объектах c1
и c2
.
Затем result = c1 -c 2
выполняется инструкция . Этот оператор вызывает операторную функцию Complex operator - (Complex c2)
.
Когда result = c1 - c2
выполняется, c2
передается в качестве аргумента операторной функции.
В случае перегрузки бинарных операторов в программировании на C ++ объект в правой части оператора всегда принимается компилятором в качестве аргумента.
Затем эта функция возвращает полученное комплексное число (объект) в функцию main (), которая отображается на экране.
Хотя это руководство содержит перегрузку операторов -, бинарные операторы в программировании на C ++, такие как: +, *, <, + = и т. Д., Могут быть перегружены аналогичным образом.