C ++

C ++ - käyttäjän ylikuormitus

C ++ - käyttäjän ylikuormitus
Tässä artikkelissa on opas käyttäjän ylikuormitukseen C-muodossa++. Operaattorin ylikuormitus on hyödyllinen ja tehokas C ++ - ohjelmointikielen ominaisuus. C ++ sallii useimpien sisäänrakennettujen operaattoreiden ylikuormituksen. Tässä opetusohjelmassa käytämme useita esimerkkejä osoittamaan käyttäjän ylikuormitusmekanismia.

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ä:

  1. Esimerkki 1: Yksittäisen käyttäjän ylikuormitus (1)
  2. Esimerkki 2: Yksittäisen käyttäjän ylikuormitus (2)
  3. Esimerkki 3: Binaarisen operaattorin ylikuormitus
  4. 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ää.

Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...
League of Legendsin asentaminen Ubuntu 14 een.04
Jos olet League of Legendsin fani, tämä on sinulle mahdollisuus testata League of Legendsia. Huomaa, että PlayOnLinux tukee LOLia, jos olet linux-käyt...
Asenna uusin OpenRA-strategiapeli Ubuntu Linuxiin
OpenRA on ilmainen / ilmainen reaaliaikainen strategiapelimoottori, joka luo uudet Westwood-pelit, kuten klassinen Command & Conquer: Red Alert. Hajau...