Mi a túlterhelés a C ++ kategóriában?

A C ++ lehetővé teszi a rugalmas és könnyen érthető kód írását az úgynevezett Túlterhelés fogalom segítségével. Ez lehetővé teszi a különböző funkciók elérését a meglévő kódon belül, minimális változtatásokkal, ezáltal csökkentve a kettős kódot. Alapvetően két elsődleges típusú túlterhelés létezik, amelyeket a C ++ támogat.

A C ++ lehetővé teszi, hogy azonos nevű függvényeket írjunk, de az adattípusok vagy az átadott argumentumok számának különbségével ezt a funkciót Funkció túlterhelésnek nevezzük a C ++-ban. Ez a szolgáltatás lehetővé teszi a fejlesztőknek, hogy azonos funkcióval azonos hatókörben definiálják a funkciókat. Ugyanazon névvel a funkciók ugyanazt a funkcionalitást képviselik, ezáltal lehetővé téve a fordítási idő polimorfizmus elérését. A funkció túlterhelésének az egyik előnye, hogy javítja a kód olvashatóságát.

A C ++-ban van még egy olyan szolgáltatás, amely lehetővé teszi a beépített operátorok meglévő funkcióinak újradefiniálását, az úgynevezett operátor túlterhelés . Ez a szolgáltatás lehetővé teszi a beépített operátorok használatát a felhasználó által definiált típusokon. Az operátor túlterhelése egyszerűsíti a kódot azáltal, hogy újradefiniálja a felhasználói igényeknek megfelelő funkcionalitást. Ebben a cikkben mind a funkciók túlterhelésére, mind az operátor túlterhelésére összpontosítunk, részleteket és a C ++ alkalmazásának módját látjuk.

Hogyan működik a túlterhelés a C ++-ban?

  • Funkció túlterhelés: Lehetővé teszi a függvény azonos nevű meghatározását, de megkülönbözteti a függvényeket az átadott paraméterek típusától vagy az átadott paraméterek számától függően. Tehát minden funkciónak ugyanaz a neve, de eltérő adattípusúak, vagy eltérő számú paraméter lesz átadva. Amikor a függvény meghívásra kerül, a fordító kiválasztja a függvényt a megfelelő paraméter típusával és az argumentumok számával. Most a fejlesztők kiválaszthatják, hogy melyik funkciót hívja meg a követelményeknek megfelelően. A paramétereknek a szabályok betartásával történő kiválasztásával választhatják meg a megfelelő funkciót.
  • Operátor túlterhelés: Ez lehetővé teszi az operátorok számára, hogy a felhasználó által meghatározott adattípusokon, azaz osztályokon dolgozzanak. A meglévő operátorok túlterheltek, és hatalommal bírnak a felhasználó által meghatározott osztályon és objektumokon történő működésre. A kezelő túlterhelését a funkció speciális névvel történő meghatározásával érjük el. A funkció neve „operátor”, amelyet a kezelő szimbóluma követ. Az operátor szimbólumot közvetlenül a felhasználó által meghatározott adattípuson használhatjuk és végrehajthatjuk a műveletet. A szükséges műveletet vagy műveletet ez a speciális funkció határozza meg. Az operátor túlterhelésével különféle típusú műveleteket hajthatunk végre ugyanazon adattípuson.

A túlterhelés típusai a C ++ kategóriában

A funkció túlterhelése egyébként is elérhető a paraméterek felhasználása szempontjából. Amikor a paraméterek használatát mondjuk, akkor a paraméterek típusára vagy a paraméterek számára, vagy a paraméterek sorozatára utal. Tehát a calc (int x, float y) paraméterekkel rendelkező (int x, float y) függvény különbözik a Calc (float x, int y) által definiált függvénytől, amelyeknek a paraméterei eltérő adattípussal rendelkeznek.

Számos típus létezik, ahol a funkciók túlterhelését elérhetjük. Lássuk a C ++ függvény funkcióinak túlterhelésének egyszerű példáját.

#include
using namespace std;
class Display (
public:
static void show (char message() ) (
cout<< "Only Message:" << message << endl;
)
static void show (int messageId, char message()) (
cout<< "Message with Id:";
cout << messageId << " Message:" << message << endl;
)
);
int main (void) (
Display obj;
char message() = "Welcome";
int messageId = 10;
obj.show(message); //calling overloaded function with 1 parameter
obj.show(messageId, message);//calling overloaded function with 2 parameters
return 0;
)

Itt van egy olyan Display Display, amely egy túlterhelt módszer-show-val rendelkezik. A show módszert a továbbított érvek függvényében hívjuk meg.

Kimenet:

Csak üzenet: Üdvözlet

Üzenet az Id-vel: 10 Üzenet: Üdvözlet

A kezelõ túlterhelése szinte az összes beépített adattípuson elérhető a C ++ formátumban. Ilyen különféle típusú operátor-túlterhelés nem létezik, de a megközelítések eltérőek lehetnek az operátorok túlterhelésének eléréséhez. Az olyan operátorok, mint az Unary, a bináris, a relációs, a hozzárendelés stb., Túlterhelhetők a C ++ alkalmazásban.

Lássuk a ++ operátor túlterhelésének egyszerű példáját. Ebben a példában a primitív adattípus helyett a ++ operátort fogjuk használni a felhasználó által megadott osztályobjektumon.

#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)
#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)

Tehát van egy objektumunk, amelynek kezdeti magasságát 80-ra állítják, és 5-rel növekednek, ha ++ operátort hívunk rajta.

Kimenet:

A kerékpár magassága: 80
A kerékpár magassága: 85

Túlterhelés szabályai a C ++ kategóriában

Az alábbiakban bemutatjuk a különböző C ++ túlterhelési szabályokat, az alábbiak szerint:

A funkció túlterhelésének szabályai

  • A funkció túlterhelésekor a funkciónak különböznie kell az adattípus, a paraméterek száma vagy a sorrend tekintetében. Ez nem térhet el egyszerűen a visszatérő funkció függvényében.

A kezelő túlterhelésének szabályai

  • Csak a beépített operátorokat lehet túlterhelni, az új operátorokat nem lehet túlterhelni.
  • Négy operátor van, amelyeket nem lehet túlterhelni, ezek . (tagválasztás), :: (hatókör felbontás), . * (tagválasztás mutató segítségével a funkcióhoz) és?: (háromoldalú operátor).
  • A túlterhelt operátor legalább egy, a felhasználó által meghatározott adattípus operandust tartalmaz.
  • Vannak bizonyos operátorok, amelyeket nem lehet túlterhelni a barát funkció használatával, ám tag funkcióként túlterhelhetők.

Következtetés

Tehát a C ++ túlterhelése az egyedülálló szolgáltatás, amely számos előnyt kínál számunkra. A túlterhelésnek elsősorban két típusa van, azaz a funkciók túlterhelése és a kezelő túlterhelése. A funkció túlterhelése javítja a kód olvashatóságát, így ugyanazt a nevet tartja ugyanahhoz a művelethez. Az operátorok túlterhelése lehetővé teszi az operátorok meglévő funkcionalitásának újradefiniálását, ezáltal különleges jelentést adva nekik. Mindkettő nagyon hasznos a C ++ programozásában.

Ajánlott cikkek

Ez egy útmutató a C ++ túlterheléshez. Itt tárgyaljuk annak működését, szabályait és a c ++ túlterhelés két típusát, azaz a funkció túlterhelését és az operátor túlterhelését. A következő cikkben további információkat is megnézhet -

  1. Túlterhelés a PHP-ben
  2. Másoló konstruktor C ++-ban
  3. Túlterhelés vs felülbírálás
  4. Váltás a C ++ kifejezésben
  5. Túlterhelés a Java-ban
  6. Python túlterhelés

Kategória: