Mis on operaator?
Operaator on sümbol, mis tähistab kompilaatorit konkreetse toimingu sooritamiseks. Näiteks on C ++ -s mitmesuguseid operaatoreid, näiteks aritmeetikaoperaatorid, loogikaoperaatorid, suhtlusoperaatorid, määranguoperaatorid, bitipõhised operaatorid ja palju muud.
Mis on operaatori ülekoormus?
C ++ keel võimaldab programmeerijatel anda operaatoritele eritähendusi. See tähendab, et saate määratleda operaatori C-s kasutaja määratud andmetüüpide jaoks++. Näiteks „+” kasutatakse sisseehitatud andmetüüpide, näiteks int, float jne lisamiseks. Kahe tüüpi kasutaja määratletud andmete lisamiseks on vaja operaatorit „+” üle koormata.
Süntaks operaatori ülekoormuse jaoks
C ++ pakub operaatori ülekoormamiseks spetsiaalset funktsiooni, mida nimetatakse operaatoriks. Operaatori ülekoormamise süntaks on järgmine:
klassi näidisKlass…
Avalik:
operaatori sümbol returnType (argumendid)
…
…
;
Siin on "operaator" märksõna ja "sümbol" on operaator, mida soovime üle koormata.
Näited
Nüüd, kui saate aru operaatori ülekoormuse üldisest kontseptsioonist, laseme läbi paar toimivat näidisprogrammi, et saaksite sellest ideest konkreetsemalt aru saada. Käsitleme järgmisi näiteid:
- Näide 1: operaatori ühekordne ülekoormus (1)
- Näide 2: operaatori ühekordne ülekoormus (2)
- Näide 3: binaaroperaatori ülekoormus
- Näide 4: operaatori suhteline ülekoormus
Näide 1: ühekordse operaatori ülekoormus (1)
Selles näites demonstreerime, kuidas unaaroperaatorit saab C-s üle koormata++. Nii ees- kui ka järelliite juurdekasvuoperaatorite ülekoormamiseks oleme määranud klassi „Square_Box” ja avalikud funktsioonid „operaator ++ ()” ja „operaator ++ (int)”. Funktsioonis “main ()” oleme loonud objekti “mySquare_Box1."Seejärel oleme rakendanud objekti" mySquare_Box1 "eesliite ja järelpärandi juurdekasvuoperaatorid, et näidata operaatorite ühetaolist ülekoormust.
# kaasatanimeruumi kasutamine std;
klassi ruut_kast
privaatne:
ujuki pikkus;
ujuki laius;
ujuki kõrgus;
avalik:
Square_Box ()
Square_Box (ujuk l, ujuk w, ujuk h)
pikkus = l;
laius = w;
kõrgus = h;
// Operaatori ülekoormus - prefiksioperaator "++"
tühine operaator ++ ()
pikkus ++;
laius ++;
kõrgus ++;
// Operaatori ülekoormus - postfixi operaator "++"
tühine operaator ++ (int)
pikkus ++;
laius ++;
kõrgus ++;
tühi väljund ()
cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;
;
int main ()
Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
tagastama 0;
Näide 2: operaatori ühekordne ülekoormus (2)
See on veel üks näide, milles demonstreerime, kuidas unaaroperaatorit saab C-s üle koormata++. Nii ees- kui ka järelliite vähendusoperaatorite ülekoormamiseks oleme määranud klassi "Square_Box" ja avalikud funktsioonid "operaator - ()" ja "operaator - (int)". Funktsioonis “main ()” oleme loonud objekti “mySquare_Box1”. Seejärel oleme objekti “mySquare_Box1” rakendanud prefiksi ja postfixi vähendamise operaatorid.
# kaasatanimeruumi kasutamine std;
klassi ruut_kast
privaatne:
ujuki pikkus;
ujuki laius;
ujuki kõrgus;
avalik:
Square_Box ()
Square_Box (ujuk l, ujuk w, ujuk h)
pikkus = l;
laius = w;
kõrgus = h;
// Operaatori ülekoormus - prefiksioperaator
tühine operaator - ()
pikkus--;
laius--;
kõrgus--;
// Operaatori ülekoormus - "-" postfix-operaator
tühine operaator - (int)
pikkus--;
laius--;
kõrgus--;
tühi väljund ()
cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;
;
int main ()
Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
tagastama 0;
Näide 3: binaaroperaatori ülekoormus
Nüüd vaatleme binaaroperaatorite ülekoormamise näidet. Binaaroperaatorite ülekoormuse süntaks erineb mõnevõrra operaatori unariaalse ülekoormamise süntaksist. Selles näites laadime operaatori „+” kahe objekti „Square_Box“ lisamiseks üle.
# kaasatanimeruumi kasutamine std;
klassi ruut_kast
privaatne:
ujuki pikkus;
ujuki laius;
ujuki kõrgus;
avalik:
Square_Box ()
Square_Box (ujuk l, ujuk w, ujuk h)
pikkus = l;
laius = w;
kõrgus = h;
// Operaatori ülekoormus - operaator "+"
Operaator Square_Box + (const Square_Box ja obj)
Ruudu_kasti temp;
temp.pikkus = pikkus + obj.pikkus;
temp.laius = laius + obj.laius;
temp.kõrgus = kõrgus + obj.kõrgus;
tagasituleku temp;
tühine väljund ()
cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;
;
int main ()
Square_Box mySquare_Box1 (3.0, 5.0, 6.0), mySquare_Box2 (2.0, 3.0, 5.0), tulemus;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.väljund ();
tulemus = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
tulemus.väljund ();
tagastama 0;
Näide 4: operaatori suhteline ülekoormus
Nüüd vaatleme relatsioonioperaatori ülekoormamise näidet. Relatsioonioperaatori ülekoormuse süntaks on täpselt nagu binaaroperaatori ülekoormamise oma. Selles näites koormame<” and “>”Operaatorid objektide“ Square_Box ”kasutamiseks.
# kaasatanimeruumi kasutamine std;
klassi ruut_kast
privaatne:
ujuki pikkus;
ujuki laius;
ujuki kõrgus;
avalik:
Square_Box ()
Square_Box (ujuk l, ujuk w, ujuk h)
pikkus = l;
laius = w;
kõrgus = h;
// Operaatori ülekoormus - "<" operator
boolioperaator < (const Square_Box& obj)
kui (pikkus < obj.length)
return true;
muud
return false;
// Operaatori ülekoormus - operaator ">"
boolioperaator> (const Square_Box & obj)
kui (pikkus> obj.pikkus)
return true;
muud
return false;
tühi väljund ()
cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;
;
int main ()
Square_Box mySquare_Box1 (2.0, 3.0, 5.0), mySquare_Box2 (4.0, 6.0, 8.0);
booli tulemus;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.väljund ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.väljund ();
tulemus = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
tagastama 0;
Järeldus
C ++ on üldotstarbeline ja paindlik programmeerimiskeel, mida kasutatakse laialdaselt erinevates valdkondades. See programmeerimiskeel toetab nii kompileerimis- kui ka tööaja polümorfismi. See artikkel näitas teile, kuidas teha operaatori ülekoormust C-s++. See on C ++ väga kasulik funktsioon, mis lisab arendajale lisapingutusi operaatori määratlemiseks ülekoormuse jaoks, kuid kindlasti muudab klassi kasutaja elu lihtsamaks.