C ++ programa sudėtingam skaičiui atimti naudojant operatoriaus perkrovą

Šiame pavyzdyje išmoksite atimti sudėtingus skaičius naudodami operatoriaus perkrovą operatoriui.

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C ++ programavimo temas:

  • C ++ klasės ir objektai
  • C ++ konstruktoriai
  • C ++ operatoriaus perkrova

Kadangi - yra dvejetainis operatorius (operatorius, kuris veikia dviem operandais), vienas iš operandų turėtų būti perduotas kaip argumentas operatoriaus funkcijai, o likęs procesas yra panašus į nepinarių operatorių perkrovą.

Pavyzdys: Dvejetainis operatorius perkrauna atimdamas kompleksinį skaičių

 #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; ) 

Šioje programoje sukuriami trys „Complex“ tipo objektai ir vartotojo prašoma įvesti tikrąsias ir įsivaizduojamas dviejų sudėtingų skaičių dalis, kurios yra saugomos objektuose c1ir c2.

Tada result = c1 -c 2įvykdomas pareiškimas . Šis sakinys iškviečia operatoriaus funkciją Complex operator - (Complex c2).

Kai result = c1 - c2vykdoma, c2perduodama kaip argumentas operatoriaus funkcijai.

Operatoriui perkraunant dvejetainius operatorius programuojant C ++, kompiliatorius visada mano, kad operatoriaus dešinėje pusėje esantis objektas yra argumentas.

Tada ši funkcija grąžina gautą kompleksinį skaičių (objektą) į pagrindinę () funkciją, kuri rodoma ekrane.

Nors šioje pamokoje yra perkraunami operatoriai, dvejetainiai operatoriai C ++ programavime, pvz .: +, *, <, + = ir tt, gali būti perkrauti panašiu būdu.

Įdomios straipsniai...