Mikä on operaattori?
Operaattori on symboli, joka osoittaa kääntäjälle tietyn toiminnon suorittamisen. Esimerkiksi C ++: ssa on erityyppisiä operaattoreita, kuten aritmeettiset operaattorit, loogiset operaattorit, relaatiooperaattorit, määritysoperaattorit, bittikohtaiset operaattorit ja muut.
Mikä on käyttäjän ylikuormitus?
C ++ -kieli antaa ohjelmoijille mahdollisuuden antaa käyttäjille erityisiä merkityksiä. Tämä tarkoittaa, että voit määrittää operaattorin uudelleen käyttäjän määrittämille tietotyypeille C: ssä++. Esimerkiksi "+" käytetään lisäämään sisäänrakennettuja tietotyyppejä, kuten int, float jne. Kahden tyyppisen käyttäjän määrittelemän datan lisäämiseksi on välttämätöntä ylikuormittaa “+” -operaattoria.
Syntaksi käyttäjän ylikuormitukselle
C ++ tarjoaa erikoistoiminnon nimeltä operaattori käyttäjän ylikuormitukselle. Seuraava on syntaksi käyttäjän ylikuormitukselle:
luokan näyteLuokka…
Julkinen:
returnType-operaattorin symboli (argumentit)
…
…
;
Tässä "operaattori" on avainsana ja "symboli" on operaattori, jonka haluamme ylikuormittaa.
Esimerkkejä
Nyt kun ymmärrät käyttäjän ylikuormituksen yleiskäsitteen, käy läpi muutama toimiva esimerkkiohjelma, jotta ymmärrät tämän idean konkreettisemmin. Käsittelemme seuraavia esimerkkejä:
- Esimerkki 1: Yksittäisen käyttäjän ylikuormitus (1)
- Esimerkki 2: Yksittäisen käyttäjän ylikuormitus (2)
- Esimerkki 3: Binaarisen operaattorin ylikuormitus
- Esimerkki 4: Operatiivisen operaattorin ylikuormitus
Esimerkki 1: Yksittäisen käyttäjän ylikuormitus (1)
Tässä esimerkissä osoitetaan, kuinka unary-operaattori voidaan ylikuormittaa C: ssä++. Olemme määrittäneet luokan "Square_Box" ja julkiset toiminnot "operaattori ++ ()" ja "operaattori ++ (int)" ylikuormittamaan sekä etuliitteen että jälkiliitteen lisäysoperaattorit. "Main ()" -funktiossa olemme luoneet objektin "mySquare_Box1".”Sitten olemme soveltaneet etuliitteen ja jälkiliitteen lisäysoperaattoreita“ mySquare_Box1 ”-objektiin osoittaaksemme operaattorin ylikuormituksen.
#sisältääkäyttämällä nimitilaa vakio;
luokan neliö
yksityinen:
uimurin pituus;
uimurin leveys;
kellukkeen korkeus;
julkinen:
Square_Box ()
Square_Box (kelluva l, kelluva w, kelluva h)
pituus = l;
leveys = w;
korkeus = h;
// Operaattorin ylikuormitus - etuliiteoperaattori "++"
void operaattori ++ ()
pituus ++;
leveys ++;
korkeus ++;
// Operaattorin ylikuormitus - "++" postfix-operaattori
void operaattori ++ (int)
pituus ++;
leveys ++;
korkeus ++;
tyhjä lähtö ()
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.lähtö ();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
paluu 0;
Esimerkki 2: Yksittäisen käyttäjän ylikuormitus (2)
Tämä on toinen esimerkki, jossa osoitamme, kuinka unary-operaattori voidaan ylikuormittaa C: ssä++. Olemme määrittäneet luokan "Square_Box" ja julkiset toiminnot "operaattori - ()" ja "operaattori - (int)" sekä ylemmän että etuliitteen ja jälkiliitteen vähennysoperaattoreiden kuormittamiseksi. Funktiossa “main ()” olemme luoneet objektin “mySquare_Box1”. Sitten olemme soveltaneet etuliitteen ja jälkiliitteen vähennysoperaattoreita “mySquare_Box1” -objektiin.
#sisältääkäyttämällä nimitilaa vakio;
luokan neliö
yksityinen:
uimurin pituus;
uimurin leveys;
kellukkeen korkeus;
julkinen:
Square_Box ()
Square_Box (kelluva l, kelluva w, kelluva h)
pituus = l;
leveys = w;
korkeus = h;
// Operaattorin ylikuormitus - "-" etuliiteoperaattori
tyhjä operaattori - ()
pituus--;
leveys--;
korkeus--;
// Operaattorin ylikuormitus - "-" postfix-operaattori
void operaattori - (int)
pituus--;
leveys--;
korkeus--;
tyhjä lähtö ()
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.lähtö ();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
paluu 0;
Esimerkki 3: Binaarisen operaattorin ylikuormitus
Seuraavaksi tarkastellaan esimerkkiä binäärioperaattoreiden ylikuormituksesta. Binaaristen operaattoreiden ylikuormituksen syntaksit eroavat jonkin verran operaattoreiden epäyhtenäisistä ylikuormituksista. Tässä esimerkissä ylikuormitamme "+" -operaattoria lisäämään kaksi "Square_Box" -objektia.
#sisältääkäyttämällä nimitilaa vakio;
luokka Square_Box
yksityinen:
uimurin pituus;
uimurin leveys;
kellukkeen korkeus;
julkinen:
Square_Box ()
Square_Box (kelluva l, kelluva w, kelluva h)
pituus = l;
leveys = w;
korkeus = h;
// Operaattorin ylikuormitus - "+" -käyttäjä
Square_Box-operaattori + (const Square_Box ja obj)
Square_Box temp;
Lämpötila.pituus = pituus + obj.pituus;
Lämpötila.leveys = leveys + obj.leveys;
Lämpötila.korkeus = korkeus + obj.korkeus;
paluulämpötila;
tyhjä lähtö ()
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), tulos;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.lähtö ();
tulos = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
tulos.lähtö ();
paluu 0;
Esimerkki 4: Operatiivisen operaattorin ylikuormitus
Nyt tarkastellaan esimerkkiä relaatio-operaattorin ylikuormituksesta. Relaatio-operaattorin ylikuormituksen syntaksi on aivan kuten binäärioperaattorin ylikuormituksen. Tässä esimerkissä ylikuormitamme<” and “>”Operaattoreita hakemaan” Square_Box ”-objekteihin.
#sisältääkäyttämällä nimitilaa vakio;
luokan neliö
yksityinen:
uimurin pituus;
uimurin leveys;
kellukkeen korkeus;
julkinen:
Square_Box ()
Square_Box (kelluva l, kelluva w, kelluva h)
pituus = l;
leveys = w;
korkeus = h;
// Operaattorin ylikuormitus - "<" operator
bool-operaattori < (const Square_Box& obj)
jos (pituus < obj.length)
palaa tosi;
muu
return false;
// Operaattorin ylikuormitus - ">" -operaattori
bool-operaattori> (const Square_Box & obj)
jos (pituus> obj.pituus)
palaa tosi;
muu
return false;
tyhjä lähtö ()
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);
bool-tulos;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.lähtö ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.lähtö ();
tulos = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
paluu 0;
Johtopäätös
C ++ on yleiskäyttöinen ja joustava ohjelmointikieli, jota käytetään laajalti useilla aloilla. Tämä ohjelmointikieli tukee sekä kääntö- että ajoaikapolymorfismia. Tässä artikkelissa kerrottiin, kuinka operaattorin ylikuormitus suoritetaan C: ssä++. Tämä on erittäin hyödyllinen C ++: n ominaisuus, joka lisää kehittäjälle ylimääräistä vaivaa määritellä operaattori ylikuormitukselle, mutta se varmasti helpottaa luokan käyttäjän elämää.