c + + overbelastning (operatør og funktion)

, c + + giver dig mulighed for at angive mere end én definition af en funktion, navn eller en virksomhed i samme omfang, som kaldes, funktion, overbelastning, og erhvervsdrivende, overbelastning, henholdsvis. en overbelastet erklæring er en erklæring, der var blevet angivet med samme navn som tidligere angivet erklæring i samme anvendelsesområde, bortset fra, at begge erklæringer har forskellige argumenter og åbenbart forskellige definition (gennemførelse). når du kalder en overfyldt, funktion eller operatør, de fastsætter de mest hensigtsmæssige definition til brug ved at sammenligne argument typer du plejede at kalde den funktion eller operatør med de typer, der er specificeret i parameter definitioner.processen med udvælgelse af den mest hensigtsmæssige overbelastet funktion eller operatør kaldes, overbelastning beslutning,., funktion overbelastning i c + +: du kan have flere definitioner for samme funktion navn i samme omfang.definitionen af funktion skal afvige fra hinanden ved de typer og /eller antallet af argumenter i argument liste.You can not overload function declarations that differ only by return type.,Following is the example where same function ,print(), is being used to print different data types:, #include <iostream> using namespace std; class printData { public: void print(int i) { cout << "Printing int: " << i << endl; } void print(double f) { cout << "Printing float: " << f << endl; } void print(char* c) { cout << "Printing character: " << c << endl; } }; int main(void) { printData pd; //Call print to print integer pd.print(5); //Call print to print float pd.print(500.263); //Call print to print character pd. tryk ("hej c + +"); tilbage 0}, når ovennævnte adfærdskodeks er udarbejdet og gennemført, giver følgende resultat: trykning int: 5 trykning flyde: 500.263 trykning karakter: hej, c + +, operatører overbelastning i c + +: du kan omdefinere eller overbelastning, de fleste af den indbyggede operatører, der er til rådighed i c + +.således en programmør kan bruge operatører med brugerdefinerede typer samt., overbebyrdede operatører er funktioner med særlige navne nøgleordet operatør, efterfulgt af symbolet for operatøren er fastlagt.som enhver anden funktion, en overfyldt aktør har et afkast, type og en parameter liste., rubrik operatør + (i denne rubrik &), erklærer de over erhvervsdrivende, som kan anvendes til at tilføje to rubrik objekter og returnerer sidste rubrik objekt.de fleste overbelastet operatører kan defineres som almindelige ikke - eu - funktioner eller som klasse medlem funktioner.i tilfælde af, at vi definerer ovennævnte funktion som ikke - medlem funktion af en klasse, ville vi være nødt til at passere to argumenter for hver operand som følger: - rubrik operatør + (i denne rubrik & denne rubrik &), som er et eksempel for at vise begrebet erhvervsdrivende over belastning ved hjælp af et medlems funktion.her er et objekt er vedtaget som et argument, hvis egenskaber findes med det formål, den genstand, der vil kalde denne operatør kan nås ved hjælp af denne operatør, som forklaret nedenfor:,&#omfatter < iostream > anvendelse af namespace std. klasse rubrik (offentlige: dobbelt getvolume (annulleret) {tilbage længde * bredde * højde) ugyldig setlength (dobbelt len) (længde = len;} tomrum setbreadth (dobbelt bre) (bredde = bre;} tomrum setheight (dobbelt hej) (højde = hej;} //overbelastning + operatør at tilføje to rubrik objekter.rubrik operatør + (i denne rubrik & b) {æske box; box.length = - > længde + b.length; box.breadth = - > bredde + b.breadth; box.height = - > højde + b.height; tilbage rubrik;} private: dobbelt længde; //længde af en kasse dobbelt bredde: //bredde af en kasse dobbelte højde; //højde for en æske}; //vigtigste funktion i programmet int vigtigste () (rubrik box1; //erklærer box1 af typen æske box deindikatoriƒtekstboks 2; //erklærer deindikatoriƒtekstboks 2 af typen rubrik rubrik box3; //erklærer box3 af typen rubrik dobbelt mængde = 0, 0; //butik omfanget af en boks her //boks 1 specifikation box1. setlength (6); box1. setbreadth (7); Box1.setHeight(5.0); //box 2 specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); //volume of box 1 volume = Box1.getVolume(); cout << "Volume of Box1 : " << volume <<endl; //volume of box 2 volume = Box2.getVolume(); cout << "Volume of Box2 : " << volume <<endl; //Add two object as follows: Box3 = Box1 + Box2; //volume of box 3 volume = Box3.getVolume(); cout << "Volume of Box3 : " << volume <<endl; return 0; } ,When the above code is compiled and executed, it produces the following result:, Volume of Box1 : 210 Volume of Box2 : 1560 Volume of Box3 : 5400 ,Overloadable/Non-overloadableOperators: efter er listen over de erhvervsdrivende, som kan være overfyldt: + - * /% ^ &



Previous:
Next Page: