C ++

C ++ kezelő túlterhelése

C ++ kezelő túlterhelése
Ez a cikk útmutatót nyújt a kezelő C-ben történő túlterheléséhez++. Az operátor túlterhelése a C ++ programozási nyelv hasznos és hatékony szolgáltatása. A C ++ lehetővé teszi a legtöbb beépített operátor túlterhelését. Ebben az oktatóanyagban több példával fogjuk bemutatni az operátor túlterhelési mechanizmusát.

Mi az Operátor?

Az operátor egy szimbólum, amely jelzi a fordító számára egy adott művelet végrehajtását. Például különböző típusú operátorok vannak a C ++ - ban, például számtani operátorok, logikai operátorok, relációs operátorok, hozzárendelési operátorok, bitenkénti operátorok és még sok más.

Mi a kezelő túlterhelése?

A C ++ nyelv lehetővé teszi a programozók számára, hogy különleges jelentéseket adjanak az operátoroknak. Ez azt jelenti, hogy újból meghatározhatja az operátort a felhasználó által definiált adattípusokhoz a C-ben++. Például a „+” -ot beépített adattípusok, például int, float stb. Hozzáadására használják. Kétféle felhasználó által definiált adat hozzáadásához túlterhelni kell a „+” operátort.

Szintaxis a kezelő túlterheléséhez

A C ++ az operátornak nevezett speciális funkciót biztosítja a kezelő túlterheléséhez. Az operátor túlterhelésének szintaxisa a következő:

osztály sampleClass


Nyilvános:
returnType operátor szimbólum (argumentumok)



;

Itt az „operátor” egy kulcsszó, a „szimbólum” pedig az az operátor, amelyet túlterhelni akarunk.

Példák

Most, hogy megértette a kezelő túlterhelésének általános koncepcióját, menjünk át néhány működő példaprogramon, hogy konkrétabban megértsük ezt az elképzelést. A következő példákat mutatjuk be:

  1. 1. példa: Unary Operator túlterhelés (1)
  2. 2. példa: Unary Operator túlterhelés (2)
  3. 3. példa: Bináris operátor túlterhelése
  4. 4. példa: A relációs operátor túlterhelése

1. példa: Unary Operator túlterhelés (1)

Ebben a példában bemutatjuk, hogyan lehet az unáris operátort túlterhelni C-ben++. Meghatároztuk a „Square_Box” osztályt és a nyilvános függvényeket, az „operátor ++ ()” és az „operátor ++ (int)” elemeket az előtag és a postfix növekmény operátorok túlterheléséhez. A „main ()” függvényben létrehoztuk a „mySquare_Box1” objektumot.”Ezután az előtag és a postfix növekmény operátorokat alkalmaztuk a„ mySquare_Box1 ”objektumra, hogy bemutassuk az unariás operátor túlterhelését.

#include
névtér használata std;
osztály Square_Box

magán:
úszó hossza;
úszó szélessége;
úszómagasság;
nyilvános:
Square_Box ()
Square_Box (úszó l, úszó w, úszó h)

hossz = l;
szélesség = w;
magasság = h;

// Operátor túlterhelése - "++" előtag operátor
void operátor ++ ()

hossz ++;
szélesség ++;
magasság ++;

// Operátor túlterhelése - "++" postfix operátor
void operátor ++ (int)

hossz ++;
szélesség ++;
magasság ++;

érvénytelen kimenet ()

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.Kimenet();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
visszatér 0;

2. példa: Unary Operator túlterhelés (2)

Ez egy másik példa, amelyben bemutatjuk, hogyan lehet az unáris operátort túlterhelni C-ben++. Meghatároztuk a „Square_Box” osztályt és a nyilvános függvényeket, az „operátor - ()” és az „operátor - (int)” kifejezéseket az előtag és a postfix dekrement operátorok túlterheléséhez. A „main ()” függvényben létrehoztuk a „mySquare_Box1” objektumot. Ezután az előtag és a postfix csökkentési operátorokat alkalmaztuk a „mySquare_Box1” objektumra.

#include
névtér használata std;
osztály Square_Box

magán:
úszó hossza;
úszó szélessége;
úszómagasság;
nyilvános:
Square_Box ()
Square_Box (úszó l, úszó w, úszó h)

hossz = l;
szélesség = w;
magasság = h;

// Operátor túlterhelése - "-" előtag operátor
érvénytelen operátor - ()

hossz--;
szélesség--;
magasság--;

// Operátor túlterhelése - "-" postfix operátor
érvénytelen operátor - (int)

hossz--;
szélesség--;
magasság--;

érvénytelen kimenet ()

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.Kimenet();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
visszatér 0;

3. példa: Bináris operátor túlterhelése

Most megnézzük a bináris operátorok túlterhelésének példáját. A bináris operátorok túlterhelésének szintaxisa némileg eltér az unariás operátorok túlterhelésétől. Ebben a példában túlterheljük a „+” operátort két „Square_Box” objektum hozzáadásához.

#include
névtér használata std;
osztály Square_Box

magán:
úszó hossza;
úszó szélessége;
úszómagasság;
nyilvános:
Square_Box ()
Square_Box (úszó l, úszó w, úszó h)

hossz = l;
szélesség = w;
magasság = h;

// Operátor túlterhelése - "+" operátor
Square_Box operátor + (const Square_Box & obj)

Square_Box temp;
temp.hossz = hossz + objektum.hossz;
temp.szélesség = szélesség + obj.szélesség;
temp.magasság = magasság + objekt.magasság;
visszatérő hőmérséklet;

érvénytelen kimenet ()

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), eredmény;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.Kimenet();
eredmény = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
eredmény.Kimenet();
visszatér 0;

4. példa: A relációs operátor túlterhelése

Most megnézzük a relációs operátor túlterhelésének példáját. A relációs operátor túlterhelésének szintaxisa megegyezik a bináris operátor túlterhelésével. Ebben a példában túlterheljük a<” and “>”Operátorok alkalmazzák a„ Square_Box ”objektumokra.

#include
névtér használata std;
osztály Square_Box

magán:
úszó hossza;
úszó szélessége;
úszómagasság;
nyilvános:
Square_Box ()
Square_Box (úszó l, úszó w, úszó h)

hossz = l;
szélesség = w;
magasság = h;

// Operátor túlterhelése - "<" operator
bool operátor < (const Square_Box& obj)

ha (hossz < obj.length)
return true;
más
return false;

// Operátor túlterhelése - ">" operátor
bool operátor> (const Square_Box & obj)

ha (hossz> obj.hossz)
return true;
más
return false;

érvénytelen kimenet ()

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 eredmény;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.Kimenet();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.Kimenet();
eredmény = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
visszatér 0;

Következtetés

A C ++ egy általános célú és rugalmas programozási nyelv, amelyet széles körben használnak a különböző területeken. Ez a programozási nyelv támogatja a fordítási és a futási idejű polimorfizmust is. Ez a cikk bemutatta, hogyan kell végrehajtani az operátor túlterhelését C-ben++. Ez a C ++ nagyon hasznos tulajdonsága, amely némi extra erőfeszítést jelent a fejlesztő számára, hogy meghatározza az operátort a túlterheléshez, de mindenképpen megkönnyíti az osztály felhasználóinak életét.

Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...