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 -
- Túlterhelés a PHP-ben
- Másoló konstruktor C ++-ban
- Túlterhelés vs felülbírálás
- Váltás a C ++ kifejezésben
- Túlterhelés a Java-ban
- Python túlterhelés