I det här exemplet lär du dig att subtrahera komplexa nummer med hjälp av operatörens överbelastning av - operatören.
För att förstå detta exempel bör du ha kunskap om följande C ++ programmeringsämnen:
- C ++ klasser och objekt
- C ++ konstruktörer
- C ++ överbelastning av operatören
Eftersom - är en binär operatör (operatör som arbetar på två operander), bör en av operanderna skickas som argument till operatörsfunktionen och viloprocessen liknar överbelastning av unary operatörer.
Exempel: Överbelastning av binär operatör till subtraherande komplexnummer
#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; )
I detta program skapas tre objekt av typen Complex och användaren uppmanas att ange de verkliga och imaginära delarna för två komplexa nummer som lagras i objekt c1
och c2
.
Sedan result = c1 -c 2
utförs uttalandet . Detta uttalande åberopar operatörsfunktionen Complex operator - (Complex c2)
.
När result = c1 - c2
körs c2
skickas det som argument till operatörsfunktionen.
Vid operatörsöverbelastning av binära operatörer i C ++ programmering antas objektet på operatörens högra sida alltid som argument av kompilatorn.
Därefter returnerar den här funktionen det resulterande komplexa numret (objekt) till huvudfunktionen () som visas på skärmen.
Denna tutorial innehåller dock överbelastning av - operatorer, binära operatörer i C ++ - programmering som: +, *, <, + = etc. kan överbelastas på ett liknande sätt.